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

Perl:如何测试是否已将任何值(甚至为零)分配给散列键

发布时间:2020-12-16 06:08:03 所属栏目:大数据 来源:网络整理
导读:是否有正确的测试方法,如果已经为特定的哈希键分配了任何值,即使该值为零?我一直在处理这样的声明: %hash=();$hash{a}=1;$hash{b}=0;if($hash{$key}) { do something } 但是,对于已经被触摸的键和已被赋值为0的键(例如,$hash {b}和$hash {c}都计算为’fals
是否有正确的测试方法,如果已经为特定的哈希键分配了任何值,即使该值为零?我一直在处理这样的声明:

%hash=();
$hash{a}=1;
$hash{b}=0;
if($hash{$key}) { do something }

但是,对于已经被触摸的键和已被赋值为0的键(例如,$hash {b}和$hash {c}都计算为’false’),这给出了相同的结果.有没有办法说出这两者之间的区别?

解决方法

使用 defined运算符检查某些内容是否具有非undef值

if ( defined $hash{ $key } ) {
  //do stuff
}

使用exists运算符检查是否已写入%hash的$key

if ( exists $hash{ $key } ) {
  //do stuff
}

区别在于定义检查以查看值是否为undef和exists之外的任何值,用于验证$key是否为散列的键,尽管其值.

(编辑:李大同)

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

    推荐文章
      热点阅读