में अतिरिक्त तर्क लेते हुए एक सेटर विधि बनाना, मैं एक विधि लिखने की कोशिश कर रहा हूं जो एक सेटटर के रूप में कार्य करता है और असाइन किए गए मान के अलावा कुछ अतिरिक्त तर्क लेता है। बेवकूफ उदाहरण:रूबी
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
यह काम क्यों नहीं करेगा, क्या मुझे स्पष्ट याद आ रही है?
संबंधित/डुप्लिकेट: http://stackoverflow.com/questions/9280623/setter-method-assignment-with-multiple-arguments – kotique