Perl基础函数---map

Posted EasyPerl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Perl基础函数---map相关的知识,希望对你有一定的参考价值。

map函数具体使用方法:

map EXPR, LIST

map BLOCK LIST


map函数和grep函数类似, 不过适用场景更多, 功能也更复杂强大。

grep函数返回的是一个包含多有表达式EXPR或者BLOCK为真的列表,通常来说一个元素返回一个或者零个元素。 

map函数返回的也是一个列表, 但是是一个包含所有EXPR或者BLOCK计算结果的列表, 也就是说针对每一个元素, map函数得到的可能是一个甚至很多个的元素。


我们来看下面的例子:

my @nums = (33,35,38,66,77);

my @chars = map chr, @nums;

print "$_\n" for @chars;

我们把数字转变成相应的字符, 这里的功能和grep是基本一样的


继续来看:

my @nums = (33,35,38,66,77);

my %chars = map { my $char = chr $_; $_, $char} @nums;

print "$_--->$chars{$_}\n" for keys %chars;


这里我们仍旧把数字转变成相应的字符, 但是我们将返回的内容变成了一队一队的数据对, 赋给了hash。

正如上面的例子block里面是可以包含多个语句的, 只要记住, 最后返回给map的, 是最后一个语句的返回值, 因此, 我们这里返回的是 $_, $char组成的数据对。


需要注意的是, perl是允许通过修改$_值来直接修改元素的, 但请尽量避免如此, 因为他可能会引起很多你无法理解的问题。 在需要进行计算或者修改时, 尽量使用新的临时变量来处理。


以上是关于Perl基础函数---map的主要内容,如果未能解决你的问题,请参考以下文章

Perl hash map操作,定义,插入,删除,hash函数

关于 Perl 映射函数的建议

perl 第十弹 函数III

Go语言基础:map|函数

Go语言基础:map|函数

Perl基础速成