代码是这样的
a = lambda{|x,y| print x,y}
a.call(1)//报错
a.call(1,2)//ok
a.call(1,2,3)//报错
还没认真研究 lambda 的实现代码,可我觉得这个再 java 里多了参数或少了参数报错,我是可以认同的。但在 ruby 里,
既然 lambda 表现的就和方法一样,那 a.call(1),我希望它输出的应该是“1,nil”,a.(1,2,3) 打印要么“1,2”,要么“1,[2,3]”
然后自己写了这样的 code
def fol(x,y)
puts "hello"
end
fol(1)//报错
fol(1,2)//ok
fol(1,2,3)//报错
看来的确 lambda 表现的就和方法一样。 而且异常都一样 ArgumentError: wrong number of arguments