Wie kann man von ihrem "String-Namen" auf die Instanzvariable zugreifen?

8

Gibt es eine Möglichkeit (Meta-Programmierung?), eine Instanzvariable zu lesen / schreiben, wenn wir nur ihren String-Namen kennen?

Zum Beispiel habe ich eine @ my_var-Instanzvariable, die in einer Klassenmethode verwendet wird. Während des Prozesses werde ich eine Zeichenfolge "my_var" haben, die mir sagt, dass ich die @ my_var-Instanzvariable ändern soll.

Natürlich könnte ich eine "if" -Anweisung verwenden, aber ich möchte, dass sie dynamischer ist, da ich möglicherweise viele verschiedene Instanzvariablen in meiner Methode haben werde.

Ich dachte an etwas mit "my_var" .classify und etwas anderem ...

Hat jemand eine Ahnung?

Danke für Ihre Hilfe

    
Douglas 07.01.2013, 13:53
quelle

1 Antwort

14

Verwenden Sie instance_variable_set und instance_variable_get . Beachten Sie, dass die Zeichenfolge das führende @ haben muss:

%Vor%     
Dylan Markow 07.01.2013, 14:58
quelle