アクセサと自己代入演算(+=とか) - Ruby -
Rubyのアクセサで += させたらどうなるのかなと思ったので実験しました。
ソース
class Acc
def initialize
@val = ""
end
attr_accessor :val
enda = Acc.new
p a.val
# ""
a.val = "test"
p a.val
# "test"
a.val += "test"
p a.val
# "testtest"
結果
""
"test"
"testtest"
リファレンスを見る attr_accessor : は
def name
@name
end
def name=(val)
@name = val
end
と定義した同じようなのですが「+=」がないな〜という疑問出てきましたので
連結させているStringにあるのかなと思って
p "a".methods
で調べてみても見つかりませんでした。リファレンス2を見ると
foo += 12 # foo = foo + 12
実際の処理は「foo = foo + 12」ということかな?