gpt4 book ai didi

ruby - Enumerable::each_with_index 现在可以选择在 Ruby 1.9 中接受一个参数。它的意义和/或用例是什么?

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

在 Ruby 1.8.7 及之前的版本中,Enumerable::each_with_index 不接受任何参数。在 Ruby 1.9 中,它将接受任意数量的参数。 Documentation/code显示它只是将这些参数传递给 ::each。使用内置标准库 Enumerables,我相信传递参数会产生错误,因为 Enumerable 的 ::each 方法不需要参数。

所以我猜这仅在创建您自己的 Enumerable 时有用,您在其中创建了一个接受参数的 ::each 方法。这有什么用处?

此更改还有其他不明显的后果吗?

最佳答案

我浏览了一些 gems 代码,发现几乎没有使用该功能。其中一个是 spreadsheet:

def each skip=dimensions[0], &block
skip.upto(dimensions[1] - 1) do |idx|
block.call row(idx)
end
end

我真的不认为这是一个重要的变化:#each 是混合模块 Enumerable 的类的基本方法,添加的方法(map、select、...)不接受参数。

关于ruby - Enumerable::each_with_index 现在可以选择在 Ruby 1.9 中接受一个参数。它的意义和/或用例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7937094/

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