さまざまなプログラミング言語で利用される変数や定数の使い方、命名規則について初めてプログラミングを学習する方向けに丁寧に解説していきます。
変数(定数とは)
変数や定数の概念についてはRubyだけではなく他のプログラミング言語と同じものになるのでこちらで覚えておくとほかの言語を学習する際にも応用が利きますのでぜひしっかりと身につけましょう。
変数(定数)とは文字列や数値などのデータに固有の名前をつけることで、繰り返し利用できるようにする機能のことです。
よく変数の説明の際に用いられる例としては箱からの出し入れというものがあります。
例えば、下記の画像の通りに緑色の箱に柴犬を入れたとします。
そして箱には柴犬が入っていることから犬というラベルを貼り付けることとします。
こうすることで、いつでも”犬”というラベルの貼ってある箱を持ってくると中には柴犬がいて、いつでも散歩などに連れ出せるというわけです。
とても便利ですよね。
上記を例に変数宣言で覚えておきたい用語は以下の通りです
- 箱 ⇒ 変数
- ラベル ⇒ 変数名
- 柴犬 ⇒ 値
- 柴犬を箱にしまうこと ⇒ 代入または格納
- 最初に格納される値(柴犬) ⇒ 初期値
- 新しく別の値(別の犬)を格納する ⇒ 再代入
定数では再代入はできませんが、それ以外の動作は変わりません。
変数と定数は非常によく似ていますが、Rubyでは明確に分けられて利用されます。
書き方についても各言語によって異なるため本記事ではRubyで利用できる変数宣言(定数宣言)にフォーカスして紹介していきます。
変数と定数の宣言
変数の宣言と値代入のルールには共通部分が多くあります。
変数の宣言方法
変数の宣言方法についてご紹介していきます。
書式
変数名 = 初期値
代入できる値は下記の2種類
- 数字
- 文字列
値の代入方法
//数字 変数hogeに整数の123を代入 hoge = 123 //文字列 変数dogにダブルクォーテーションで囲った文字列の柴犬を代入 dog = "柴犬"
変数宣言では最初の1文字を必ずアルファベットの小文字で行う必要があります。
上記の例では変数として宣言している『hoge』『dog』それぞれ最初の1文字が小文字となっていることがわかると思います。
このように変数名を付けることでRuby側で『これは変数なんだな』と認識してくれるわけです。
定数の宣言方法
定数の宣言方法についてご紹介していきます。
書式
定数名 = 初期値
代入できる値は下記の2種類
- 数字
- 文字列
値の代入方法
//数字 定数HOGEに整数の456を代入 HOGE = 456 //文字列 定数CATにダブルクォーテーションで囲った文字列のエキゾチックショートヘアを代入 CAT = "エキゾチックショートヘア"
変数宣言では最初の1文字を必ずアルファベットの小文字で行うことがルールとしてありましたが
定数の場合は異なります。
定数宣言では最初の1文字を必ずアルファベット大文字で行う必要があります。
上記の例では定数として宣言している『HOGE』『CAT』それぞれ最初の1文字が大文字となっていることがわかると思います。
こうすることでRuby側で『これは定数なんだな』と認識してくれるわけです。
変数と定数の命名規則(ルール)
変数と定数の命名規則についてご紹介します。
ちなみにですが命名規則とは変数名や定数名の名前を付けるときのルールのことです。
それぞれ名前の付け方に違いがあり、また、厳密にRuby側で指定されているわけではない慣例的なルールもあります。
慣例的なルールについてはプロジェクトによって異なると思いますので開発現場のルールに従いましょう。
Ruby側で定義されている命名規則
Rubyのシステム上で定義されている破ることのできないルールについてご紹介していきます。
変数名
- 最初の1文字目はアルファベットの小文字、もしくは半角アンダーバー(_)
- 2文字目以降はアルファベット、数字、半角アンダーバー(_)を使用できる
定数名
- 最初の1文字目はアルファベットの大文字のみ
- 2文字目以降はアルファベット、数字、半角アンダーバー(_)を使用できる
慣例的な命名規則
慣例的とは『一般的なしきたり』のことです。今回でいえば『先人のプログラマーたちが最も効率がよく伝わりやすい』という考え方のもと編み出されたルールのことで
これを破ったからと言ってRubyのシステムからエラーなどが出力されるようなものではありません。
ただ第三者が見たときにこの変数(定数)は何が格納されているか一目でわかるネーミングになるように作られたものです。
実は結構重要で、知らないと現場などでは空気の読めないやつというか『わかってないなあ』と思われてしまい評価がかなり下がります。
自分しか読まない練習用のプログラミングだとしても3か月後の自分が読んでわからない変数がある場合にはネーミングセンスが足りてない可能性があります。
そのため、『誰かが勝手につけた慣例的なルール』などとは思わないでしっかりと意識して使えるようにしておきましょう
変数名
- アルファベットはすべて小文字を利用する
- 命名に複数の単語を利用する場合は半角アンダーバー(_)で区切る
#NG dOG #2文字目からアルファベットの大文字となっている dogfood #単語を半角アンダーバー(_)区切っていない #OK dog dog_food
定数名
- アルファベットはすべて大文字を利用する
- 命名に複数の単語を利用する場合は半角アンダーバー(_)で区切る
#NG Cat #2文字目からアルファベットの小文字となっている CATFOOD #単語を半角アンダーバー(_)区切っていない #OK CAT CAT_FOOD
単語を半角アンダーバー(_)区切って命名する手法をスネークケースと呼びます。
別言語ではキャメルケースと呼ばれる手法もあり、単語を最初の1文字だけ大文字にすることで文字を区切っています。
Rubyでは変数名や定数名の慣例的なルールとしてスネークケースを利用しています。