加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 21:11:52 所属栏目:大数据 来源:网络整理
导读:这是一个常见的示例代码: while (1) { print "foon"; } 它永远打
这是一个常见的示例代码:
while (1) { 
    print "foon"; 
}

它永远打印“foo”.

perl foo.pl
foo
foo
foo
...

while (0) { print "foon"; }

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

perl test.pl

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

while (-1) { print "foon"; }

这使

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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读