perl – 什么! (双重感叹号)是什么意思?
发布时间:2020-12-15 21:25:40 所属栏目:大数据 来源:网络整理
导读:在下面的代码中,从 blog post by Alias,我注意到使用双惊叹号!!。我想知道这是什么意思,我在未来可以去找到解释Perl语法如此。 (是的,我已经在 perlsyn搜索!!)。 package Foo;use vars qw{$DEBUG};BEGIN { $DEBUG = 0 unless defined $DEBUG;}use consta
在下面的代码中,从
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 解决方法
这只是两个!布尔不是运算符彼此相邻。
使用这个成语的原因是确保你收到一个1或0.实际上,它返回一个空的字符串,numifys为0.它通常只用于数字或布尔上下文。 你通常会在Code Golf赛事中看到这个,因为它比使用三元组更短? :运算符为1和0($ 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |