Язык программирования Crystal

sizeof

Выражение 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