gpt4 book ai didi

Ruby 如何统计 yield 返回的对象个数

转载 作者:太空宇宙 更新时间:2023-11-03 16:00:55 25 4
gpt4 key购买 nike

目前我有一个方法具有这样的签名 time_in_intervals(from, till, interval, &block) 我希望能够向它传递一个返回数字计数的简单 block 对象产生到 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

最佳答案

这个方法是你写的吗?如果是这样,将其定义更改为仅 yield if block_given?

否则,如果它严格需要一个 block ,您可以使用隐式 block 语法以这种方式完成:

(time_in_intervals('7AM', '8PM', 60) { }).count

关于Ruby 如何统计 yield 返回的对象个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25556508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com