変数¶
値を保存して後で再利用するには、変数に代入します。
たとえば、Hello Penny!
を3回出力したい場合、同じ文字列を複数回繰り返す必要はありません。代わりに、変数に代入して再利用できます。
message = "Hello Penny!"
puts message
puts message
puts message
このプログラムは、文字列 Hello Penny!
を標準出力に3回出力し、それぞれ改行します。
変数名は常に小文字のUnicode文字(またはアンダースコアですが、これは特別なユースケース用に予約されています)で始まり、英数字またはアンダースコアで構成できます。一般的な規則として、大文字は避け、snake_case
で記述します。
注記
このレッスンで説明する種類の変数は、*ローカル変数*と呼ばれます。他の種類は後で紹介します。ここでは、ローカル変数にのみ焦点を当てます。
型¶
変数の型は、コンパイラによって自動的に推論されます。上記の例では、String
です。
typeof
を使用して確認できます。
message = "Hello Penny!"
p! typeof(message)
注記
p!
は、標準出力に値を出力するという点で puts
と似ていますが、式もコードで出力します。これは、Crystalプログラムの状態を検査したり、デバッグしたりするのに役立つツールです。
値の再代入¶
変数には、異なる値を再代入できます。
message = "Hello Penny!"
p! message
message = "Hello Sheldon!"
p! message
これは、異なる型の値でも機能します。異なる型の値が代入されると、変数の型が変わります。コンパイラは、プログラムのどの時点でどの型を持っているかを認識するのに十分なほどスマートです。
message = "Hello Penny!"
p! message, typeof(message)
message = 73
p! message, typeof(message)