相关疑难解决方法(0)

在Perl中,"0但是真实"是什么意思?

有人可以解释Perl中字符串"0但是真"的含义吗?据我所知,它在整数比较中等于零,但在用作布尔值时求值为true.它是否正确?这是语言的正常行为还是在解释器中作为特殊情况处理的特殊字符串?

perl integer boolean

61
推荐指数
9
解决办法
2万
查看次数

使用双重否定(!!)

好的,所以我遇到了一个看起来像的代码

@documents_names = sort {
         !!$deleted_documents_names{$a} == !!$deleted_documents_names{$b}
          ? uc($a) cmp uc($b)
          : !!$deleted_documents_names{$a}
          cmp !!$deleted_documents_names{$b}
         } @documents_names;
Run Code Online (Sandbox Code Playgroud)

这是我第一次看到使用双重否定.有什么用?一个人什么时候使用它?

perl boolean operators

31
推荐指数
2
解决办法
1277
查看次数

为什么Perl使用空字符串来表示布尔值false?

在标量(布尔)上下文中1计算表达式时,如果表达式求值为true ,则Perl使用显式值作为结果;如果表达式求值为false,则使用空字符串.我很好奇为什么Perl使用空字符串来表示布尔值false而不是0更直观.

请注意,我并不关心Perl将空字符串视为标量(布尔)上下文中的false.

编辑

如何使用true("false"例如)字符串作为false值的字符串表示来改变现有代码的含义?我们可以说在这样的改变之后改变语义的代码不像它本来那样健壮/正确吗?我猜字符串上下文在Perl中是如此普遍,以至于导致理智语义的唯一选择是,如果布尔值在向字符串转换为字符串之后保留其值...

perl boolean boolean-expression

18
推荐指数
2
解决办法
3095
查看次数

返回布尔实际返回的Perl函数是什么

Perl 定义的函数(以及许多其他函数)返回"布尔值".

鉴于Perl实际上没有布尔类型(并且使用值为1表示true,0undef表示false)Perl语言是否准确指定了布尔值的返回值?例如,会defined(undef)返回0undef,是否会发生变化?

perl boolean return

12
推荐指数
2
解决办法
4373
查看次数

标签 统计

boolean ×4

perl ×4

boolean-expression ×1

integer ×1

operators ×1

return ×1