假设我有一个方法foo
,它需要一个lambda参数。 foo
使用参数调用lambda。我实际上不希望在执行lambda时发生任何事情。
目前,我正在这样做:
foo(->(*) {})
这看起来有点难看,我必须相信,有一种更优雅,更清晰的方式将其编写为Ruby语言。
是否有更好的方法传递“不做任何事情” lambda?
答案 0 :(得分:3)
我建议改为重新考虑foo
。
话虽如此,我认为没有比这更优雅的方法了,但是如果您真的想要,可以添加这样的内容(我认为这比您所拥有的更为丑陋)
module Kernel
def noop
Proc.new {}
end
end
然后以
调用def foo(blk)
blk.call(1,2,3,4,5)
end
foo(noop)
#=> nil