- 246 名前:デフォルトの名無しさん [2010/03/27(土) 23:32:41 ]
- >>245
オブジェクトを作ってみる。 > f = Foo.new #=> #<Foo:0x000001010e23b8 @readerArray=[0, 0, 0], @writerArray=[0, 0, 0]> @writerArray 書き込みアクセサで書き換える。 > f.writerArray= [1,2,3] #=> [1, 2, 3] 読み出しアクセサはない。 > f.writerArray #=> NoMethodError: undefined method `writerArray' for #<Foo:0x000001010e23b8> リフレクションで取得は可能。 > f.instance_variable_get(:@writerArray) #=> [1, 2, 3] @readerArray 書き込みアクセサはない。 > f.readerArray = [10, 20, 30] #=> NoMethodError: undefined method `readerArray=' for #<Foo:0x000001010e23b8> リフレクションで書き換えることは可能。 > f.instance_variable_set(:@readerArray, [4,5,6]) #=> [4, 5, 6] 読み出しアクセサで取得。 > f.readerArray #=> [4, 5, 6] attr_reader しかしていないと言っても、それで得られたオブジェクトが読み取り専用になっているわけではないので、 > f.readerArray.pop #=> 6 > f.readerArray #=> [4, 5] のようなことは起こる。
|

|