map,根据定义,接受一个列表,我们可以对其执行一些转换,然后将其作为一个列表返回。有些人甚至会把它称为伪装的for循环。
最近我遇到了一些代码,简单地说,这些代码是用于和映射在一起的。例如:
perl -wE'@a=(1..5); say $_ for map { $_+=10 } @a'
11
12
13
14
15我的问题是,是否有一个容易记住什么时候使用和地图在一起的方法。有人能解释一下为什么这是需要的吗?
发布于 2014-08-20 21:06:20
for用于循环遍历map返回的列表,并打印出每个元素。
您的示例具有与以下相同的效果:
@l = map {$_ += 10} @a;
for (@l) {
say $_;
}如果您只需要列表,那么您就不需要for
@l = map {$_ += 10} @a发布于 2014-08-20 21:13:57
map返回一个新列表,for在该列表上迭代。您的for map行基本上可以归结为:
@a=(1..5);
@mapped = map { $_+=10 } @a;
for (@mapped) {
say $_;
}发布于 2014-08-20 21:15:53
您可以简化您的示例:
perl -wE 'map { say $_+=10 } (1..5)'正如您所看到的,map可以用于执行每一项的代码。当必须将数组转换为另一个数组时,我使用map。您的示例(IMO)使用for循环更易读:
perl -wE 'say $_+=10 for(1..5)' https://stackoverflow.com/questions/25414396
复制相似问题