gpt4 book ai didi

ruby - 什么是选择和接受 Ruby 的好方法?

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:41 24 4
gpt4 key购买 nike

假设您有一个包含 1,000 个项目的列表,并且想要选择 10 个。选择的条件是昂贵的,但选择的机会很高(比如 99%)。

list.select do |item|
item if is_ok?(item)
end.take(10)

此代码非常低效,因为它检查每个项目,而很少需要检查超过 10 个。

什么是更好、更高效的 Rubyish 方式?

最佳答案

lazy enumerators :

list2 = list.lazy.select { |item| is_ok?(item) }.take(10) # .to_a to get an array

根据@tadman 的评论,让我强调一下 .select { |x| x 如果 p(x) } 是多余的,在过滤器中你只使用谓词:select { |x| p(x) .

关于ruby - 什么是选择和接受 Ruby 的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39321033/

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