为什么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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |