Ruby の定数、変数について
Ruby
Published: 2019-04-16

やったこと

Ruby での定数、変数について調べました。

下記について調べます。

  • 定数
  • ローカル変数
  • グローバル変数
  • インスタンス変数
  • クラス変数

確認環境

$ ruby -v
ruby 2.2.7p470 (2017-03-28 revision 58194) [x86_64-darwin16]

定数

定数名は大文字アルファベットで始まる必要があります。

ABC = 'abc'

ローカル変数

ローカル変数名は「ruby」や「ruby」のように先頭が小文字アルファベットかアンダースコア()で始まる必要があります。

ruby = 'ruby_string'
_ruby = 'ruby_string'

グローバル変数

グローバル変数名は$から始まる必要があります。

$abc = 'abc'

インスタンス変数

インスタンスの中でだけ参照できる変数をインスタンス変数と言います。

「クラスインスタンス変数」というものもあるようですが、今回は割愛します。

class My
    def initialize()
        @length = 0
    end

    def length
        @length += 1
    end
end

p @length

c = My.new
p c.length
p c.length

c2 = My.new
p c2.length

実行結果

$ ruby test.rb
nil
1
2
1

attr_accessor を利用すると、インスタンス変数のセッター、ゲッターが定義されるようです。(今回は試しません)

クラス変数

@2つからはじまる名前で記述します。

class My2
    @@length = 0

    def printLen
        @@length += 1
    end
end

my2 =  My2.new
p my2.printLen
p my2.printLen

my2_2 =  My2.new
p my2_2.printLen

実行結果

$ ruby test.rb
1
2
3

参考