セッターとして機能し、割り当てられた値以外にいくつかの追加の引数を取るメソッドを作成しようとしています。愚かな例:
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
なぜこれが機能しないのですか、私は明白なことを見逃していますか?