4種類の変数
変数の種類
Rubyの変数には4種類あります。
- ローカル変数
- インスタンス変数
- グローバル変数
- クラス変数
です。
変数に使える文字
構成する文字の種類はアルファベット・数字・_
です。
日本語の変数名でも動きますが、使わないのが無難です。
予約語
予約語は変数名として使用できません。
BEGIN class ensure nil self when
END def false not super while
alias defined? for or then yield
and do if redo true __LINE__
begin else in rescue undef __FILE__
break elsif module retry unless __ENCODING__
case end next return until
変数の種類と変数に使える文字
変数の種類 | 先頭 | 構成する文字 |
---|---|---|
ローカル変数 | アルファベット小文字 | アルファベット・数字・_ |
インスタンス変数 | @ |
アルファベット・数字・_ |
グローバル変数 | $ |
アルファベット・数字・_ |
クラス変数 | @@ |
アルファベット・数字・_ |
ローカル変数
ローカル変数は、ブロックやメソッドの中が有効。
a = 1
def hoge
a = 2
end
p hoge # 2
p a # 1
a = 0
(1..3).each do |a|
p a
# 1
# 2
# 3
end
p a # 0
インスタンス変数
そのインスタンスで有効。
class Hoge
def a= a
@a = a
end
end
hoge = Hoge.new
foo = Hoge.new
hoge.a = 0
p hoge # #<Hoge:0x000055f2ad15df60 @a=0>
p foo # #<Hoge:0x000055f2ad1acd18>
グローバル変数
プログラム中の全て有効。
$a = 1
def a
$a
end
p a # 1
クラス変数
クラスが同じすべてのインスタンスで有効。
class Hoge
def a= a
@@a = a
end
def a
@@a
end
end
hoge = Hoge.new
foo = Hoge.new
hoge.a = 0
p hoge.a # 0
p foo.a # 0