J'essaye d'écrire une méthode qui agit comme un setter et prend des arguments supplémentaires en plus de la valeur assignée. exemple idiot:Création d'une méthode setter qui prend des arguments supplémentaires dans Ruby
class WordGenerator
def []=(letter, position, allowed)
puts "#{letter}#{allowed ? ' now' : ' no longer'} allowed at #{position}"
end
def allow=(letter, position, allowed)
# ...
end
end
il l'écriture comme des œuvres indexeur et je peux l'appeler comme ceci:
gen = WordGenerator.new
gen['a', 1] = true
# or explicitly:
gen.[]=('a', 1, true)
Mais lorsque je tente un des éléments suivants, l'interprète se plaint:
gen.allow('a', 1) = false # syntax error
gen.allow=('a', 1, false) # syntax error
Pourquoi ce travail ne fonctionne-t-il pas?
liés/double: http://stackoverflow.com/questions/9280623/setter-method-assignment-with-multiple-arguments – kotique