Estoy aprendiendo a programar y he decidido probar Ruby. Estoy seguro de que esta es una pregunta estúpida, pero el instructor está hablando de métodos setter y getter, y estoy confundido. Aquí está el ejemplo:Tratando de aprender/entender los métodos de Ruby setter y getter
class Human
def noise=(noise)
@noise = noise
end
def noise
@noise
end
end
partir de esto, la clase se crea una instancia, y puedo pone esto:
man = Human.new
man.noise=("Howdie!")
puts man.noise
Esto se traduce en Howdie!
Ahora lo que me confunde es que el instructor está diciendo que sin el método getter (el segundo de los dos métodos), no hay forma de interactuar con la variable de instancia @noise.
Pero cuando quito el método getter, soy capaz de seguir teniendo acceso @noise, ver ejemplo:
class Human
def noise=(noise)
@noise = noise
end
end
man = Human.new
puts man.noise=("Howdie!")
Esto funciona igual que cuando se utiliza el método de obtención.
Así que ahora estoy confundido. ¿Por qué es necesario el getter? ¿Qué quiere decir el instructor al no poder acceder a la variable de instancia sin él? ¿Es posible que esté usando una versión anterior de Ruby?
Gracias de antemano por su ayuda.
¿Realmente puede acceder a @noise, o es lo que está viendo un efecto secundario de la función que está llamando ... – LVB