メソッド[]
当然ながら、(i, x)としてメソッドを定義すると、a[123,456,789]などは書けなくなります。
class Rubyco def [](i, x) puts "i=#{i}, x=#{x}" end def []=(i, v) puts "i=#{i}, v=#{v}" end end a = Rubyco.new a[123] = 456 #=> i=123, v=456 a[123,456] #=> i=123, x=456 a[123,456,789] #=> wrong number of arguments (3 for 2) (ArgumentError)
配列で受ければOK.
class Rubyco def [](*args) puts "args=#{args.join(',')}" end end a = Rubyco.new a[1] #=> args=1 a[1,2] #=> args=1,2 a[1,2,3] #=> args=1,2,3