+ -
当前位置:首页 → 问答吧 → 何时使用MAP?

何时使用MAP?

时间:2010-08-15

来源:互联网

翻出06年的一个老帖子:

http://bbs.chinaunix.net/viewthr ... &extra=page%3D3

# my @new =
# map ({ join '@',@{$_} }
#     sort ({ $a->[1] cmp $b->[1]
#             or $a->[0] cmp $b->[0]}
#             map { [split/\@/] } @array
#          )
#     );


这里2次用到了map,每次使用map都创建了一个新的list并返还给调用者。
这种情形下,map当然简洁高效,用for就没那么优雅,多了一些临时变量。

但是,对类似于  map { print $_ } @array 这种调用,就实在不怎么高明。
首先@array有多少元素,map就会产生一个对应大小的列表(我之前帖子有例子),这个列表是多余的,浪费内存。
其次for专门对list操作做了优化,比map要稍快一些。

偶总结一句吧:

我待返团用mai表,遍历无欲则for依。

作者: 兰花仙子   发布时间: 2010-08-15

仙子果然高效

作者: shilin320   发布时间: 2010-08-15