gpt4 book ai didi

perl - 有什么用!! (双感叹号)是什么意思?

转载 作者:行者123 更新时间:2023-12-03 08:22:41 24 4
gpt4 key购买 nike

在下面的代码中,来自 blog post by Alias ,我注意到使用了双感叹号 !! .我想知道它是什么意思,以及我将来可以去哪里找到像这样的 Perl 语法的解释。 (是的,我已经在 perlsyn 搜索了 !! )。

package Foo;

use vars qw{$DEBUG};
BEGIN {
$DEBUG = 0 unless defined $DEBUG;
}
use constant DEBUG => !! $DEBUG;

sub foo {
debug('In sub foo') if DEBUG;

...
}

更新
感谢您的所有回答。

这是我刚刚发现的其他相关内容 The List Squash Operator x!!

最佳答案

只是两个 ! boolean 不是运算符并排坐在一起。

使用此习语的原因是确保您收到 10 .实际上,它返回一个空字符串,该字符串将数字化为 0。不过,它通常仅用于数字或 boolean 上下文。

你会经常在 Code Golf 中看到这个比赛,因为它比使用三元更短 ? :运营商 10 ( $test ? 1 : 0 )。

!! undef  == 0
!! 0 == 0
!! 1 == 1
!! $obj   == 1
!! 100 == 1

undef ? 1 : 0 == 0
0 ? 1 : 0 == 0
1 ? 1 : 0 == 1
$obj ? 1 : 0 == 1
100 ? 1 : 0 == 1

关于perl - 有什么用!! (双感叹号)是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2168406/

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