什么是Perl 6中...和...之间的区别?
例如,以下两行代码将产生相同的输出:
for 1..5 { .say };
for 1...5 { .say };
什么是Perl 6中...和...之间的区别?
例如,以下两行代码将产生相同的输出:
for 1..5 { .say };
for 1...5 { .say };
..
构造一个范围对象(类似于数学中的区间)。
...
构造一个序列(类似于懒惰生成的一次性列表)。
如果我只想迭代连续的整数(例如用于索引),我更喜欢前者(它是 less general 的工具,而且还少一个字符)。
如果你需要更精确的控制,使用后者(例如在 Perl6 中生成 Fibonacci 序列的成语化示例由表达式 1, 1, *+* ... *
给出,其中第三个项 *+*
是归纳地生成元素的规则)。
for 10..0 { }
不会运行一次。如果您使用10...0
,它将给您一个降序序列,正如您所期望的那样。 - timotimo