找回密码
 注册
查看: 3488|回复: 0

perl语言的keys 和values 函数

[复制链接]
发表于 2011-11-14 20:26:13 | 显示全部楼层 |阅读模式
本帖最后由 xiaoliu 于 2011-11-14 20:26 编辑

keys 函数会返回此hash 的所有keys,values 函数将返回所有的values。如果hash 中没有元素,则此函数将返回空列表:
my %hash = (“a”=>1, “b”=>2, “c”=>3);
my @k = keys %hash;
my@v = values %hash;
现在,@k 含有“a”, “b”, “c”,而@v 含有1, 2, 3,其顺序可能不同。记住,Perl 并不维护hash 中元素的顺序。但,其中keys
按照某种顺序存储,则其对应的values 也是这个顺序:如果“b”排在keys 的最后,则2 也排在values 的最后。如果“c”是
第一个,则3 也是第一个。这种论断是正确的,如果没有对keys 或values 做什么修改。如果添加了新元素到hash 中,Perl
会重新对它们进行排序,以便能更快速的访问它们。在标量context 中,这些函数返回hash 中元素的个数(key/value)。此
类操作不需要访问hash 的每一个元素,其效率是很高的:
my $count = keys %hash; #得到3,是指有3 个key/value 对
有时,你可能看到有人将hash 作为boolean(true/false)表达式来使用:
if(%hash){
print “That was a true value!\n”;
}
上述语句为true,当且仅当其至少含有一个key/value 对◆。一般,上述语句是说,“如果hash 非空… ”,但实际中很少这样
做。
◆其返回值为一个字符串,对于调试的用户有帮助。其看起来像“4/16”,但true 或者false 是由hash 的列表是否为空决定的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 23:45 , Processed in 0.046222 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表