第一的:
$ raku -e "for 1...6, 7...15 { .say }"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Run Code Online (Sandbox Code Playgroud)
现在:
$ raku -e "for 1...3, 7...15 { .say }"
1
2
3
7
11
15
Run Code Online (Sandbox Code Playgroud)
我希望这个案例打印 1,2,3,7,8,... 15。
这里发生了什么事?
我认为您可能需要 raku Range运算符..(两个点)而不是 raku Sequence运算符...(三个点)。
以下是使用 Range 运算符的示例:
> raku -e 'for 1..6, 7..15 { .say }'
1..6
7..15
Run Code Online (Sandbox Code Playgroud)
哦,那不好......看起来for只是迭代这两件事 1..6并将7..15它们字符串化。
我们可以使用Slip |来解决这个问题:
> raku -e 'for |(1..6), |(7..15) { .say }'
1
2
... (all the numbers)
14
15
Run Code Online (Sandbox Code Playgroud)
进而:
raku -e 'for |(1..3), |(7..15) { .say }'
1
2
3
7
8
9
10
11
12
13
14
15
Run Code Online (Sandbox Code Playgroud)
使用 Sequence 运算符,您可以制作如下内容:
>raku -e 'for 3,7...15 { .say }'
3
7
11
15
Run Code Online (Sandbox Code Playgroud)
raku 的意思是“创建一个从 3 开始的序列,然后是 7,然后是所有值,直到到达最后一个 15”……并且由于从 3 到 7 的间隔是 4,raku 将以以下步长进行计数4. 然后你从 1..3 开始。;-)
〜p6史蒂夫
| 归档时间: |
|
| 查看次数: |
214 次 |
| 最近记录: |