gpt4 book ai didi

perl - 为什么 !1 在 Perl 中没有给我任何结果?

转载 作者:行者123 更新时间:2023-12-01 22:04:50 24 4
gpt4 key购买 nike

这很奇怪。以下内容:

$sum = !0;
print $sum;

按照您的预期打印出 1。但这

$sum = !1;
print $sum;

什么也没打印出来。为什么?

最佳答案

请注意:您所写的内容并没有按照您的想法进行。请记住,perl 没有真正的 boolean 数据类型。它有标量、散列、列表和引用。那么,它处理真/假值的方式是与上下文相关的。在 Perl 中,除了 undefined variable 、空列表、空字符串和数字 0 之外,所有内容都计算为“true”。

然后,您的代码正在执行的操作是取计算结果为“false”的值的倒数,该值可以是上面列表中未列出的任何值。按照惯例,为了简单起见,perl 返回 1(尽管您不应该依赖它;它很可能返回包含一系列随机数的列表,因为它的计算结果也会为“true”。)

当您要求计算结果为“true”的值的倒数时,会发生类似的情况。实际上打印出来的不是“无”,而是空字符串 (''),正如我提到的,它在 boolean 表达式中计算结果为“false”。您可以检查一下:

print "This evaluates to false\n" if( (!1) eq '');

如果您问为什么 perl 吐出空字符串而不是其他“假”值之一,那么,这可能是因为 perl 是为了处理字符串而设计的,而这是一个完全合理的要返回的字符串。

关于perl - 为什么 !1 在 Perl 中没有给我任何结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1134962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com