の文字列変数を変更することを許可します。何か奇妙な動作に陥り、他の誰かが私が見ているものを確認できるかどうか疑問に思う。Rubyのattr_readerは、<<
メンバー変数を持つクラスを作成し、attr_readerを使用してそのクラスを読み取ることができるとします。私は次のことを行うときに
class TestClass
attr_reader :val
def initialize(value)
@val = value
end
end
は今、私が唯一それが読み取り権限を付与しているにもかかわらず、@valの値を変更しているようです。
test = TestClass.new('hello')
puts test.val
test.val << ' world'
puts test.val
これは
hello
hello world
を返すこれはIRBで私がやったいくつかのテスト、これは常にあなたが本当にvalの属性を書いていない場合
'attr_reader'は値を設定できない、つまり' value = 'メソッドが定義されていないことを意味します。確かに、あなたがオブジェクトのメソッドを調整できないということを意味するわけではありません –