我想知道,是不是可以使用&带参数的运算符?
items.each &:my_proc # ok
items.each &:my_proc(123, "456") # ops!
答案 0 :(得分:7)
答案 1 :(得分:3)
你可以使用一些技巧并实现类似的东西:
class Symbol
def [](*args)
proc{|obj| obj.send(self, *args) }
end
end
[123.456, 234.567].map(&:round[2])
#=> [123.46, 234.57]
我强烈反对在生产代码中使用,因为宝石等可能依赖于Symbol#[]
。这只是一个有趣的事情; - )