我试图将lambdas用作数组的块:
(1..10).each ->(i) {p i}
但是我收到了这个错误:
ArgumentError: wrong number of arguments (given 1, expected 0)
为什么会这样? lambda只有一个参数。
答案 0 :(得分:6)
Range#each
不接受lambda,需要一个块。 lambda作为参数传递,Range#each
没有预料到。试试这个:
(1..10).each { |i| p i }
如果您愿意,可以转换lambda:
lam = ->(i) { p i }
(1..10).each(&lam)