プログラミング言語 Crystal

Crystal の日本語ドキュメントはしばらく更新されておらず情報が古くなっているため、できるだけ原文の英語ドキュメントで最新の情報を参照ください。

翻訳にご協力いただける方は翻訳プロジェクトの issue や Crystal-JP の Slack からお知らせください。

初期化しない変数宣言

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

x = uninitialized Int32
x #=> 何かのランダムな値。つまり信頼できないゴミのようなもの…

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

buffer = uninitialized UInt8[256]

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

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