gpt4 book ai didi

arrays - 检测{}和选择{}[0]之间的区别

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

我正在考虑 ruby​​ 中这些方法之间的差异。我知道,select 返回一个元素数组,而 detect 只返回一个和第一个一致的元素。但是如果我输入 array.select{ condition }[0] 有什么不同吗?它将返回第一个单元,如 detect。例如:

a = [2,3,4,5]
a.detect{|k| k.even? }
# => 2
a.select{|k| k.even? }[0]
# => 2

任何人都可以向我解释这些方法之间的其他区别,并给我一些例子,说明什么时候 detectselect 更好?

最佳答案

当您只需要检索一个项目时,detect 是更可取的,因为它会在找到第一个符合条件的匹配项时停止遍历数组。因为 select 检索所有匹配条件的事件,所以它必须遍历整个列表。在最坏的情况下(匹配条件的项目不在列表中)这些是等效的,但如果您要查找的项目在列表的早期,detect 将更高效。

关于arrays - 检测{}和选择{}[0]之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39394279/

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