Sto provando a scrivere un metodo che funge da setter e prende alcuni argomenti extra oltre al valore assegnato. esempio stupido:Creazione di un metodo setter che richiede argomenti aggiuntivi in Ruby
class WordGenerator
def []=(letter, position, allowed)
puts "#{letter}#{allowed ? ' now' : ' no longer'} allowed at #{position}"
end
def allow=(letter, position, allowed)
# ...
end
end
scrittura come funziona un indicizzatore e posso chiamare in questo modo:
gen = WordGenerator.new
gen['a', 1] = true
# or explicitly:
gen.[]=('a', 1, true)
Ma quando provo una delle seguenti, l'interprete si lamenta:
gen.allow('a', 1) = false # syntax error
gen.allow=('a', 1, false) # syntax error
Perché non funziona, mi manca l'ovvio?
correlati/duplicato: http://stackoverflow.com/questions/9280623/setter-method-assignment-with-multiple-arguments – kotique