gpt4 book ai didi

perl - Perl 的 && 的结果是什么?

转载 作者:行者123 更新时间:2023-12-04 16:18:20 25 4
gpt4 key购买 nike

当我尝试这个时:

$a = 1;
$b = 2;
print ($a && $b) . "\n";

结果是2。为什么?

最佳答案

报价 perlop :

The "||", "//" and "&&" operators return the last value evaluated (unlike C's "||" and "&&", which return 0 or 1).



由此产生的 2 Perl 认为是 true,因此当您使用 && 时运算符在逻辑条件下,一切都按预期工作。额外的好处是您也可以在其他上下文中使用逻辑运算符:
sub say_something {
say shift || 'default';
}

say_something('foo'); # prints 'foo'
say_something(); # prints 'default'

甚至作为流量调节剂:
my $param = shift || die "Need param!";
-f $file && say "File exists.";

在最后两个示例中,很高兴意识到如果 && ,它们将无法工作。和 ||运营商没有 short-circuit .如果您 shift第一行中的真值,评估右侧( die… )没有意义,因为无论如何整个表达式都是真。如果文件测试在第二行失败,则不需要再次评估右侧,因为总体结果是错误的。如果逻辑运算符无论如何都坚持计算整个表达式,我们就不能这样使用它们。

关于perl - Perl 的 && 的结果是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4007717/

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