gpt4 book ai didi

perl - Perl的(或和)和(||,&&)短路运算符有什么区别?

转载 作者:行者123 更新时间:2023-12-03 09:02:00 26 4
gpt4 key购买 nike

这些子例程中的哪个与另一个不同?

sub or1 {
my ($a,$b) = @_;
return $a || $b;
}

sub or2 {
my ($a,$b) = @_;
$a || $b;
}

sub or3 {
my ($a,$b) = @_;
return $a or $b;
}

sub or4 {
my ($a,$b) = @_;
$a or $b;
}

我从C和Perl 4来到Perl 5,并且一直使用 ||,直到看到更多使用 or的脚本并且我喜欢它的外观。但是,正如以上测验所示,粗心的人并非没有陷阱。对于同时使用这两种结构或使用许多 or的人,您使用什么经验法则来决定使用哪种结构并确保代码在执行您认为正在做的事情?

最佳答案

由于'or'运算符的优先级较低,因此or3解析如下:

sub or3 {
my ($a,$b) = @_;
(return $a) or $b;
}

通常的建议是仅将“或”运算符用于控制流:
@info = stat($file) or die;

有关更多讨论,请参见perl手册: http://perldoc.perl.org/perlop.html#Logical-or-and-Exclusive-Or

关于perl - Perl的(或和)和(||,&&)短路运算符有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1512547/

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