Ruby attr_reader permite modificar una variable de cadena si se usa <<
e metió en un comportamiento extraño y se preguntó si alguien más puede confirmar lo que estoy viend
Suponga que crea una clase con una variable miembro y permite que se lea con attr_reader.
class TestClass
attr_reader :val
def initialize(value)
@val = value
end
end
Ahora cuando hago lo siguiente, parece modificar el valor de @val, aunque solo le he otorgado privilegios de lectura.
test = TestClass.new('hello')
puts test.val
test.val << ' world'
puts test.val
Esto devuelve
hello
hello world
Esto es solo el resultado de algunas pruebas que hice en irb, así que no estoy seguro de si este es siempre el caso