在Perl编程中, 散列hash是我们用的特别频繁的一种基础数据结构。
但是由于hash是数值对同时以离散的形式来存储的,因此我们遍历hash时, 和数组有点不同。
我们前面介绍了基础的遍历方法:
my %user = (
'zhang' => 33,
'li' => 44,
'wang' => 19,
);
for my $name(keys %user){
print "name:$name, age:$user{$name}\n";
}
我们将hash的键值组成的数组来作为遍历对象, 以此来遍历整个hash。
今天我们介绍另一种方式, 当我们同时需要使用到hash的键以及值的时候, 我们可以使用each方法, 通过each方法可以更方便的遍历hash。
具体实现如下:
my %user = (
'zhang' => 33,
'li' => 44,
'wang' => 19,
);
while(my ($name, $age) = each %user){
print "name:$name, age:$age\n";
}
each函数每次返回一组键值对组成的数组, 我们直接使用列表环境来接收这组返回值, 就可以直接使用hash的键和值了, 是不是特别方便, 也不需要再额外处理了。
两种方式适用的场景略有不同, 没有什么哪个更好一点。具体使用哪一种遍历方式, 需要我们根据具体的需求来进行选择。
文章转载自EasyPerl,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




