目前我有一个签名为time_in_intervals(from, till, interval, &block)
的方法,我希望能够传递一个简单的块,返回产生块的对象数量。
目前我的方式是这样的
我有一个声明空lambda的函数
def empty
-> (x) {}
end
然后我用空的lambda调用我的函数并计算它
time_in_intervals('7AM', '8PM', 60, &empty) #=> Returns array of times
time_in_intervals('7AM', '8PM', 60, &empty).count #=> 14
有没有办法做到这一点,我可以传递一个更有用的功能,然后&empty
会导致返回计数而不必调用.count
答案 0 :(得分:2)
你写过这个方法吗?如果是,请在yield
block_given?
否则,如果它严格要求一个块,你可以通过使用隐式块语法这样做:
(time_in_intervals('7AM', '8PM', 60) { }).count