打印,放和说的区别?

Ste*_*nus 8 perl6

在Perl 6中print,put和之间有什么区别say

我可以看到如何print 5不同,但put 5say 5外观相同.

Chr*_*oms 8

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

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

put 1 .. 8 # 1 2 3 4 5 6 7 8
say 1 .. 8 # 1..8
Run Code Online (Sandbox Code Playgroud)

详细了解.gist这里.

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

  • 实际上它不是``\n"`,它是`$*OUT.nl-out`,默认为`"\n"` (3认同)
  • 因此`.Str`可与Python的`repr()`相媲美,而`.gist`可与Python的`str()`相媲美? (2认同)

mr_*_*ron 8

Handy Perl 6 FAQ:如何以及为什么说,放置和打印有所不同?

最明显的区别是,say并且put在输出的末尾添加一个新行,并print没有.

但还有另一个不同之处:printput通过调用其参数转换为字符串Str传递给每个项目的方法,say使用gist方法来代替.该gist方法,您也可以创建自己的类,目的是为人类创造演绎海峡.因此,可以自由地省略有关被认为不重要的对象的信息,以了解对象的本质.

...

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

...

  • 注意:1)打印类型对象时会发出警告,"说"或打印其要点时,不会.2)`dd`使用的`.perl`也很有意义; 请参阅常见问题.3)`note`就像`say`,除了它在STDERR上打印.(@mr_ron,请考虑粘贴整个FAQ的答案 - 这一切看起来都很有用 - 或者让我竖起大拇指这样做,我会确保它的格式很好.另外,考虑添加一个关于`note`的注释.然后我会删除这条评论.) (3认同)