プログラミング言語 Crystal

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

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

ローカル変数

変数名の先頭が小文字の変数はローカル変数です。その宣言は、はじめて値が代入されたときに行われます。

name = "Crystal"
age = 1

ローカル変数の型は、初期化されるときだけではなく、その用途にしたがって推論されます。どういうことかというと、一般的にローカル変数というのは単純に型の情報を持った値の入れ物のようなものと考えることができて、プログラムにおけるそれぞれの場所や用途に応じてその入れ物の型も変化するということです。

例えば、次のようにローカル変数に別の式を再代入すると、その新しい式の型の変数となります。

flower = "Tulip"
# ここでは「flower」は String

flower = 1
# ここでは「flower」は Int32

アンダースコアを変数名の先頭につけることも可能ですが、それらの名前はコンパイラによって予約されているため、先頭がアンダースコアの変数名は推奨されません (コードの見た目や読みやすさという点でもあまり美しくないですよね) 。