modulos herencia clases bidimensionales arreglos ruby

clases - herencia en ruby



Cómo llamar dinámicamente a los métodos de acceso en Ruby (2)

No soy un experto en rubíes, pero creo que podrías hacer:

instance.send("a=", "value")

Esta pregunta ya tiene una respuesta aquí:

Independientemente de si es una buena práctica o no, ¿cómo puedo llamar de forma dinámica a los métodos de acceso en Ruby?

Aquí hay una clase de ejemplo:

class Test_Class attr_accessor :a, :b end

Puedo usar el método Object.send para leer la variable ...

instance.a = "value" puts( instance.send( "a" ) ) # => value

Pero me cuesta mucho escribirle. Estos lanzan "número incorrecto de argumentos (1 para 0) (ArgumentError)"

instance.send("a", "value")

y

instance.method("a").call("value")

Por favor, ayúdame a StackOverflow!


También puede acceder directamente a las variables de instancia de un objeto usando las funciones instance_variable_* :

instance = Test_Class.new # => #<Test_Class:0x12b3b84> # instance variables are lazily created after first use of setter, # so for now instance variables list is empty: instance.instance_variables # => [] instance.instance_variable_set(:@a, 123) # => 123 instance.a # => 123 instance.instance_variables # => ["@a"] instance.instance_variable_get("@a") # => 123