当前位置:  开发笔记 > 编程语言 > 正文

Perl 6如何评估真实性?

如何解决《Perl6如何评估真实性?》经验,为你挑选了4个好方法。

在阅读有关Perl 6的内容时,我看到一个被大肆宣扬的功能,您不再需要这样做:

return "0 but true";

...但可以改为:

return 0 but True;

如果是这样的话,Perl 6中的真相如何运作?在Perl 5中,它很简单:0,""和undef都是假的,其他一切都是真的.

在布尔上下文中,Perl 6中有哪些规则?



1> brian d foy..:

Perl 6现在通过向对象询问问题而不是查看其值来评估真相.该值不是对象.这是我喜欢的其他对象语言,并且很乐意在Perl中使用:我可以决定对象如何响应并且可以改变它.正如ysth所说,你可以在Perl 5中做到超载,但我总是觉得我这样做后必须洗手.:)

如果你没有做任何改变,Perl 6的行为与Perl 5相同,所以你得到的惊喜最少.



2> ysth..:

参见概要12:角色.

规则是相同的,但"但"复制0并将一个角色应用于导致它在布尔上下文中为真的副本.

你可以在Perl 5中使用重载做同样的事情.



3> moritz..:

真值测试只是.true在一个对象上调用该方法,因此"混合"操作$stuff but True(除此之外)会覆盖该方法.

这在S02中指定,通常在S12中描述了枚举类型(其中Bool是一个).



4> Mark Cidade..:

根据O'Reilly的Perl 6和Parrot Essentials,false是0,undef,空字符串,值标记为false.其他一切都是真的.

此外,Perl 6既有一个原始的布尔类型,也有任何值可以混合的True和False 角色(例如,你可以有一个"0但是真"值或者一个"1但是假",或者一个错误的列表包含元素,或者是空的真实列表.

请访问http://www.mail-archive.com/macosx@perl.org/msg09930.html


那本书很古老,并不代表当前的语言状态.
推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有