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

Respuestas a la pregunta(4)

Su respuesta a la pregunta