注意:我正在使用这是Rakudo Star版本2019.03.1在REPL上进行所有操作,这是在实现Perl 6.d的MoarVM版本2019.03上构建的Rakudo Star版本2019.03.1。
在euler项目#22中,有一个names.txt文件,类似于“ JERE”,“ HAI”,“ ELDEN”,“ DORSEY”,“ DARELL”,“ BRODERICK”,“ ALONSO”,...
当我读到它时,将其拆分和排序,即可得到我所期望的名称列表。
for '../names.txt'.IO.slurp.split(',').sort -> $name {
say $name;
}
Run Code Online (Sandbox Code Playgroud)
打印出来
...
"ZONIA"
"ZORA"
"ZORAIDA"
"ZULA"
"ZULEMA"
"ZULMA"
Run Code Online (Sandbox Code Playgroud)
现在,如果我添加 comb()
for '../names.txt'.IO.slurp.split(',').sort -> $name {
say $name.comb;
}
Run Code Online (Sandbox Code Playgroud)
我越来越
...
(" Z O N I A ")
(" Z O R A ")
(" Z O R A I D A ")
(" Z U L A ")
(" Z U L E M A ")
(" Z U L M A ")
Run Code Online (Sandbox Code Playgroud)
但是,如果我只是从repl运行的话;
> "ZULMA".comb
Run Code Online (Sandbox Code Playgroud)
我懂了
(ZULMA)#注意缺少引号
为什么comb在这两种情况下行为不同?
它的行为没有不同。在一种情况下,引号是一个语法元素(是代码的一部分),而在另一种情况下,则从文件中逐字读取数据:
"ZULMA".comb
'"ZULMA"'.comb
Run Code Online (Sandbox Code Playgroud)
数据不同。不是行为。
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |