首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与地图配合使用

与地图配合使用
EN

Stack Overflow用户
提问于 2014-08-20 21:04:14
回答 5查看 83关注 0票数 0

map,根据定义,接受一个列表,我们可以对其执行一些转换,然后将其作为一个列表返回。有些人甚至会把它称为伪装的for循环。

最近我遇到了一些代码,简单地说,这些代码是用于和映射在一起的。例如:

代码语言:javascript
复制
perl -wE'@a=(1..5); say $_ for map { $_+=10 } @a'
11
12
13
14
15

我的问题是,是否有一个容易记住什么时候使用和地图在一起的方法。有人能解释一下为什么这是需要的吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-08-20 21:06:20

for用于循环遍历map返回的列表,并打印出每个元素。

您的示例具有与以下相同的效果:

代码语言:javascript
复制
@l = map {$_ += 10} @a;
for (@l) {
    say $_;
}

如果您只需要列表,那么您就不需要for

代码语言:javascript
复制
@l = map {$_ += 10} @a
票数 3
EN

Stack Overflow用户

发布于 2014-08-20 21:13:57

map返回一个新列表,for在该列表上迭代。您的for map行基本上可以归结为:

代码语言:javascript
复制
@a=(1..5);
@mapped = map { $_+=10 } @a;
for (@mapped) {
  say $_;
}
票数 1
EN

Stack Overflow用户

发布于 2014-08-20 21:15:53

您可以简化您的示例:

代码语言:javascript
复制
perl -wE 'map { say $_+=10 } (1..5)'

正如您所看到的,map可以用于执行每一项的代码。当必须将数组转换为另一个数组时,我使用map。您的示例(IMO)使用for循环更易读:

代码语言:javascript
复制
perl -wE 'say $_+=10 for(1..5)' 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25414396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档