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

正当なCSSです!