打印,放和说的区别?

时间:2018-03-31 11:25:11

标签: perl6

在Perl 6中,printputsay之间的区别是什么?

我可以看到print 5的不同之处,但put 5say 5看起来是一样的。

2 个答案:

答案 0 :(得分:8)

put $a就像print $a.Str ~ “\n”
say $a就像print $a.gist ~ “\n”

put更具计算机可读性 say更具人性化。

put 1 .. 8 # 1 2 3 4 5 6 7 8
say 1 .. 8 # 1..8

详细了解.gist here

---
更准确地说,putsay会附加输出文件句柄的nl-out属性的值,默认情况下为\n。但是你可以覆盖它。感谢布拉德吉尔伯特指出这一点。

答案 1 :(得分:8)

Handy Perl 6常见问题:How and why do say, put and print differ?

  

最明显的区别是sayput在输出的末尾添加换行符,而print则没有。{/ p>      

但是还有另一个区别:printput通过调用传递给每个项目的Str方法将其参数转换为字符串,say使用{{1}而是方法。 gist方法,您也可以为自己的类创建,旨在为人类解释创建一个Str。因此,可以自由地省略有关被认为不重要的对象的信息,以理解对象的本质。

     

...

     

因此,据说是针对随意的人工解释进行了优化,dd针对休闲调试输出进行了优化,打印和放置更适合产生输出。

     

...