変数・定数について
Rubyを勉強するときに初めて登場するのが変数・定数です。
プログラミングを始める上でも変数・定数は基礎知識となるので、ここでマスターしましょう。
Rubyの変数と定数はそれぞれ変数名の頭文字で区別します。大文字, 小文字, @から始まるなどです。
変数と定数については公式リファレンスが存在するので、今回はこちらを噛み砕いてご説明します。
目次
- 変数について
- 定数について
1. 変数について
Rubyの変数はいくつか種類があります。
- ローカル変数
- インスタンス変数
- クラス変数
- グローバル変数
これらの変数の使い方をマスターし、プログラミング言語の基礎を習得しましょう。
ローカル変数(定義)
記法:頭文字が小文字か_から始まる(数字で始めてはいけない)
例:sample, _sample
スコープ(利用できる範囲):宣言した位置からその変数が宣言されたブロック、メソッド定義、またはクラス/モジュール定義の終りまで
ローカル変数(使い方)
test = 'hello' # 'hello'という文字列をtestに代入
puts test # testを出力
# hoge関数宣言
def hoge
test2 = 'world' # 'world'という文字列をtestに代入
puts test2 # test2を出力
end
hoge # 関数呼び出し
### 出力結果
hello
world
スコープの制約があるため、以下のようにはできない。
test = 'hello' # 'hello'という文字列をtestに代入
# hoge関数宣言
def hoge
puts test # testを出力(エラーが起きる)
end
hoge # 関数呼び出し
### 出力結果
wrong number of arguments (given 0, expected 2..3) (ArgumentError)
インスタンス変数(定義)
記法:@から始まる
スコープ(利用できる範囲):クラスのメソッド内でしか使えない
インスタンス変数(使い方)
class Test
def initialize(name)
@name = name
end
def test
puts @name
end
end
test1 = Test.new("hoge")
test2 = Test.new("bar")
test1.test
test2.test
### 出力結果
hoge
bar
クラス変数(定義)
記法:@@から始まる
スコープ(利用できる範囲):宣言したクラス内
クラス変数(使い方)
class Test
@@test = 'test'
def initialize(name)
@name = name
end
def test
puts @name
puts @@test
end
end
test1 = Test.new("hoge")
test2 = Test.new("bar")
test1.test
test2.test
### 出力結果
hoge
test
bar
test
グローバル変数(定義)
記法:$から始まる
スコープ(利用できる範囲):コードの中どこからでも参照できる
グローバル変数(使い方)
$test = 'hello' # 'hello'という文字列を$testに代入
# hoge関数宣言
def hoge
puts $test # $testを出力
end
hoge # 関数呼び出し
### 出力結果
hello
2. 定数について
定数の特徴として再代入不可能という制約があります。
一度宣言した定数は更新することができないという制約です。
定数(定義)
記法:大文字アルファベットから始まる(全て大文字にすることが多い)
スコープ:グローバル変数と同様
定数(使い方)
TEST = 'hello' # 'hello'という文字列をTESTに代入
# hoge関数宣言
def hoge
puts TEST # TESTを出力
end
hoge # 関数呼び出し
### 出力結果
hello
覚書のようにつらつら書きましたが、大まかな使い方は以上です。
完璧ではないので、日々更新かけていきます。