Ich versuche, eine Methode schreiben, die als Setter fungiert und einige zusätzliche Argumente neben dem zugewiesenen Wert. Dumme Beispiel:Erstellen einer Setter-Methode, die zusätzliche Argumente 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
es als Indexer Werke schreiben, und ich kann es so nennen:
gen = WordGenerator.new
gen['a', 1] = true
# or explicitly:
gen.[]=('a', 1, true)
Aber wenn ich eine der folgenden Bedingungen versuchen, der Dolmetscher klagt:
gen.allow('a', 1) = false # syntax error
gen.allow=('a', 1, false) # syntax error
Warum funktioniert das nicht, fehlt mir das Offensichtliche?
verwandt/Duplikat: http://stackoverflow.com/questions/9280623/setter-method-assignment-with-multiple-arguments – kotique