gpt4 book ai didi

ruby - 为什么 `Enumerable` 有 `first` 而不是 `last` ?

转载 作者:数据小太阳 更新时间:2023-10-29 06:41:07 25 4
gpt4 key购买 nike

Enumerablefirst:

(3..5).to_enum.first
# => 3

但它没有last:

(3..5).to_enum.last
# => NoMethodError: undefined method `last' for #<Enumerator: 3..5:each>

这是为什么?

最佳答案

是因为不是所有的可枚举对象都有最后一个元素。

最简单的例子是:

[1, 2, 3].cycle

# (an example of what cycle does)
[1,2,3].cycle.first(9) #=> [1, 2, 3, 1, 2, 3, 1, 2, 3]

即使枚举器元素是有限的,也没有简单的方法来获取最后一个元素,除非迭代它直到最后,这将是极其低效的。

关于ruby - 为什么 `Enumerable` 有 `first` 而不是 `last` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22521963/

25 4 0