Ran in un comportamento strano e chiedendosi se qualcun altro può confermare ciò che sto vedendo.Ruby attr_reader consente di modificare la variabile stringa se si utilizza <<
Supponiamo di creare una classe con una variabile membro e consentirne la lettura con attr_reader.
class TestClass
attr_reader :val
def initialize(value)
@val = value
end
end
Ora, quando faccio la seguente, sembra modificare il valore di @val, anche se ho concesso soltanto leggere i privilegi.
test = TestClass.new('hello')
puts test.val
test.val << ' world'
puts test.val
Ciò restituisce
hello
hello world
Questo è solo il risultato di alcuni test che ho fatto in IRB quindi non so se questo è sempre il caso
"attr_reader" significa che non è possibile impostare il valore, vale a dire nessun metodo 'value =' è definito. Certamente non significa che non si può calalizzare un metodo sull'oggetto –