In generale, come posso ottenere un riferimento a un oggetto di cui ho il nome in una stringa?Ottieni il valore di una variabile di istanza data il suo nome
In particolare, ho una lista dei nomi dei parametri (le variabili membro - costruite dinamicamente, quindi non posso farvi riferimento direttamente).
Ogni parametro è un oggetto che ha anche un metodo from_s
.
voglio fare qualcosa di simile a quanto segue (che ovviamente non funziona ...):
define_method(:from_s) do | arg |
@ordered_parameter_names.each do | param |
instance_eval "field_ref = @#{param}"
field_ref.from_s(param)
end
end
Does instance_variable_get ("@ # {nome}") restituisce il valore della variabile? Ho bisogno di un riferimento all'oggetto reale. Ho finito per riscrivere quindi invece di avere molte variabili + un array con i nomi nell'ordine che volevo, ho messo i parametri stessi nell'array (la decisione progettuale era se accedere alle variabili ogni volta cercando l'array o ottimizzando avendo un array addizionale con i loro nomi che verrebbe utilizzato solo quando necessario) –
No: instance_variable_get ("@ # {nome}") restituisce l'oggetto reale. –
Scoprire il filo morto per un po 'di chiarezza. L'esempio completo sarebbe: Classe computer attr_read: CPU def nuova (CPU) @cpus = CPU fine fine ? –