コンテンツにスキップ

初期化しない変数宣言

Crystal では、初期化せず変数を宣言することが可能です。

x = uninitialized Int32
x # => some random value, garbage, unreliable

これは安全でないコードで、特に低レベルなコードにおいて、未初期化の StaticArray バッファをパフォーマンスの劣化なく定義するために使われます。

buffer = uninitialized UInt8[256]

このとき、バッファはヒープではなくスタックに割り当てられます。

uninitialized キーワードに続く型は 型の文法にしたがって書きます。