0

我有一个 4-dimensional NArray,并且我正在覆盖#each,以便它只迭代一个维度,然后使用,等include Enumerable功能。但是,仍然迭代每个单独的元素,而不是我选择的维度。#reject#inject#sort

有没有办法明确使用Enumerable's#sort方法,还是我必须自己写?我只需要调用一次(到目前为止),所以它可能有点奇怪或不方便。

注意:我意识到这个问题似乎是重复的。但是,我不想总是覆盖#sort,而只是显式地调用Enumerable's#sort方法。

4

2 回答 2

0

如果您sort在第一级调用,其元素是数组,那么sort将比较数组。为了比较数组,评估必须进入这些数组内部,这意味着它将遍历数组的每一级。在避免迭代到子级别的同时比较数组元素是没有意义的。因此,如果这是您要尝试做的事情,那就没有办法了。

于 2013-04-19T14:44:50.070 回答
0

NArray 已经有#sort方法,并且现有方法不会通过include. 在 Ruby 2.0 中,您可以prepend使用include.

于 2013-04-19T17:05:59.740 回答