为什么Perl认为-1是真的?

前端之家收集整理的这篇文章主要介绍了为什么Perl认为-1是真的?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是一个常见的示例代码
while (1) { 
    print "foo\n"; 
}

它永远打印“foo”.

perl foo.pl
foo
foo
foo
...

while (0) { print "foo\n"; }

像你所期望的那样安静地死去

perl test.pl

有人可以解释为什么这是一个有用的实现?至少在5.10上工作,Unix和MacOS X:

while (-1) { print "foo\n"; }

这使

foo
foo
foo
...

解决方法

如果有什么,可以说-1更可能是真的,因为-1(111..111b)是0的逐位否定(000..000b). BASIC和GW-BASIC在需要返回真值时使用-1.

无论如何,Perl认为意味着“空”或“无”的价值是虚假的.大多数语言也有类似的看法.具体来说,整数为零,浮点零,字符串为零,空字符串和undef为false.

这是documented,尽管文档措辞不好. (It list()作为一个值为false,但没有这样的值.)

除了一致性,采取这种方法是非常有用的.例如,它允许使用

if (@x)

代替

if (@x != 0)
原文链接:https://www.f2er.com/Perl/172565.html

猜你在找的Perl相关文章