Выражение sizeof
возращает Int32
с размером переданного типа в байтах. Для примера:
sizeof(Int32) #=> 4
sizeof(Int64) #=> 8
Для ссылочных типов размер типа аналогичен размеру указателя:
# На 64-битных машинах
sizeof(Pointer(Int32)) #=> 8
sizeof(String) #=> 8
Так потому, что память зарезервирована в куче и передается указатель на нее. Что бы получить действительный размер класса, используйте instance_sizeof.
Аргумент для sizeof это тип, поэтому sizeof часто используют в комбинации с typeof:
a = 1
sizeof(typeof(a)) #=> 4