やったこと
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
参考
- パーフェクトRuby
- 【まとめ】インスタンス変数、クラス変数、クラスインスタンス変数 - Qiita