我正在尝试编写一种方法,该方法充当设置器并在分配的值之外接受一些额外的参数。愚蠢的例子:
class WordGenerator
def []=(letter, position, allowed)
puts "#{letter}#{allowed ? ' now' : ' no longer'} allowed at #{position}"
end
def allow=(letter, position, allowed)
# ...
end
end
将其编写为索引器可以工作,我可以这样称呼它:
gen = WordGenerator.new
gen['a', 1] = true
# or explicitly:
gen.[]=('a', 1, true)
但是当我尝试以下任何一项时,口译员会抱怨:
gen.allow('a', 1) = false # syntax error
gen.allow=('a', 1, false) # syntax error
为什么这不起作用,我错过了显而易见的事情吗?