加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl – 将空字符串用作false是一种好习惯吗?

发布时间:2020-12-15 23:28:17 所属栏目:大数据 来源:网络整理
导读:在布尔比较中,在Perl中使用空字符串作为false是安全/良好的做法吗? 例如: my $s = '';if($s) { print 'true';} else { print 'false';} 或者长度函数是更好的方法: my $s = '';if(length($s) 0) { print 'true';} else { print 'false';} 解决方法 在表达
在布尔比较中,在Perl中使用空字符串作为false是安全/良好的做法吗?

例如:

my $s = '';

if($s) {
 print 'true';
} else {
 print 'false';
}

或者长度函数是更好的方法:

my $s = '';

if(length($s) > 0) {
 print 'true';
} else {
 print 'false';
}

解决方法

在表达式中测试true / false时,您应该仔细考虑您实际想要测试的内容.

如果你有一个字符串,你需要检查它是否有任何值,然后测试:

if (defined $string) { ... }

如果从函数传回“boolean”值,或测试某些内部操作的结果,则执行布尔检查:

if ($value) { ... }

在Perl中,“真相”取决于它的评估方式.如果您只是说if($value),那么唯一计算为false的字符串值是空字符串”和字面值零’0′. (另外,任何未定义的值都是false,所以如果从未分配$value,那也是假的.)

在数值上下文中还有其他值可以评估为false,例如0E0,0.0000,字符串’0但是为true’.因此,“什么是真理”的问题实际上取决于程序员需要注意的上下文.

在内部,Perl使用”表示false,1表示真值(例如,作为任何布尔表达式的结果,例如!$value).将任意值“规范化”为这两个值之一的常用技术是!! $value – 它将值反转两次,给出“或”1.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读