|
|
1
87
一个范围就是:由它的开始和结束定义的东西,而不是它的内容。”在一般情况下,“在一个范围内迭代”是没有意义的。例如,考虑如何在两个日期产生的范围内“迭代”。你会按天迭代吗?按月计算?按年计算?一周?它的定义不明确。在国际海事组织,这一事实,它允许向前的范围应被视为一个方便的方法只。
如果要在这样的范围内向后迭代,则可以始终使用
这里是 some more thoughts 从其他人的角度来解释为什么同时允许迭代和一致地处理反向范围是困难的。 |
|
|
2
89
怎么样
|
|
|
3
18
在Ruby中迭代
5超出范围。 您可以使用这个hack来模拟逆向迭代:
约翰指出,如果跨度为0,这将不起作用。这将:
不能说我真的喜欢它们,因为它们有点模糊了我的意图。 |
|
|
4
12
根据“编程Ruby”一书,range对象存储范围的两个端点,并使用
您还可以在不使用范围的情况下获得所需的结果。试试这个:
这将以-1的步骤从4到0。但是,我不知道这是否适用于除整数参数以外的任何其他参数。 |
|
|
5
10
另一种方式是
|
|
|
6
4
你甚至可以使用
哪些印刷品:
|
|
|
7
3
如果列表不是那么大的话。
我想
|
|
|
8
1
正如BTA所说,原因是
|
|
|
9
1
我添加了另一个可能性,如何实现反向范围内的迭代。我不使用它,但它是一种可能性。猴子修补Ruby核心对象有点冒险。
|
|
|
10
0
这适用于我懒惰的用例
|
|
|
11
0
OP写道
不是“能做到吗?”但要回答在回答实际问题之前没有问到的问题:
由于反向_每个都声称构建了一个完整的数组,因此downto显然会更高效。事实上,语言设计师甚至可以考虑实现这样的事情,这与实际问题的答案有点联系。 回答实际问题… 原因是Ruby是一种令人惊讶的语言。有些惊喜是令人愉快的,但有许多行为是彻底破坏的。即使下面的一些示例被更新版本纠正了,也有很多其他示例,它们仍然是原始设计思想的标志:
结果为“”,但
结果在
您可能希望<<和push在附加到数组时是相同的,但是
您可能希望“grep”的行为与它的unix命令行等效,但它确实是==matching not=~,尽管它的名称是。
各种方法都是彼此的意外别名,因此您必须为同一件事学习多个名称-例如。
除非有人实现了其他东西——比如核心方法
环境变量对象env不支持“merge”,因此必须写入
作为一个额外的好处,你甚至可以重新定义你或其他人的常量,如果你改变你对它们应该是什么的想法。 |
|
|
bill999 · 如何创建显示观察值所处百分位数范围的变量 1 年前 |
|
pie · 如何减小python中for循环的范围? 1 年前 |
|
|
ForEverNewbie · 筛选时间段在另一行时间段内的行 1 年前 |
|
Pia · 如何使用aggregate()进行分组 1 年前 |
|
|
Malte · 如何为多行和多个范围中的值分配点值 1 年前 |