So che posso fare:È possibile accedere agli argomenti delle parole chiave come un hash in Ruby?
class Parent
def initialize(args)
args.each do |k,v|
instance_variable_set("@#{k}", v)
end
end
end
class A < Parent
def initialize(attrs)
super(attrs)
end
end
Ma vorrei usare argomenti chiave per rendere più chiaro quale metodo chiavi di hash può accettare (e hanno convalida dicendo che questa chiave non è supportato).
Quindi posso scrivere:
class A
def initialize(param1: 3, param2: 4)
@param1 = param1
@param2 = param2
end
end
Ma è possibile scrivere qualcosa di più breve, invece di @x = x; @y = y; ...
per inizializzare variabili di istanza da argomenti chiave passati? È possibile accedere agli argomenti delle parole chiave passati come un hash?
Qual è lo scopo dell'utilizzo di un hash se si dispone di argomenti di parole chiave? –
@DaveNewton, accesso programmatico a tutti gli argomenti della parola chiave contemporaneamente. – Dogbert
@DaveNewton per semplificare l'inizializzazione delle variabili di istanza con gli stessi nomi dei tasti degli argomenti delle parole chiave –