instance_sizeof¶
instance_sizeof
表達式會回傳一個 Int32
,表示給定類別的實例大小。
與會回傳已分配物件的參考(指標)大小的 sizeof
不同,instance_sizeof
會回傳已分配物件本身的大小。
例如
class Point
def initialize(@x, @y)
end
end
Point.new 1, 2
# 2 x Int32 = 2 x 4 = 8
instance_sizeof(Point) # => 12
即使該實例有兩個 Int32
欄位,編譯器總是會為物件的型別 ID 包含一個額外的 Int32
欄位。這就是為什麼實例大小最終為 12 而不是 8 的原因。