在Perl中使用map或grep
发布时间:2020-12-15 21:14:20 所属栏目:大数据 来源:网络整理
导读:我已经写了perl代码全职几个月了(生物信息学),我一直在努力提高我的技能.就在今天,对我来说,我从不使用地图或grep.回顾我的代码,我意识到这些工具可以在这里或那里节省几条线,但只能牺牲foreach循环的灵活性.我的问题如下: 有没有任何情况下你使用map或grep
我已经写了perl代码全职几个月了(生物信息学),我一直在努力提高我的技能.就在今天,对我来说,我从不使用地图或grep.回顾我的代码,我意识到这些工具可以在这里或那里节省几条线,但只能牺牲foreach循环的灵活性.我的问题如下:
有没有任何情况下你使用map或grep在foreach / for循环中带来了显着的优势,除了保存一两行代码? 谢谢你的时间! 解决方法
Schwartzian Transform将是一个例子:
@sorted = map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_,foo($_)] } @unsorted; 你可以用一堆foreach循环来做,但你必须把它们分开来弄清楚发生了什么;一旦你看到了Schwartzian变换,你会立即认出成语. 一般来说,我认为地图和grep都很好,因为它们允许您清晰而紧凑地表达您的意图,而不需要语法层面.如果你看到一张地图,那么你知道某种简单的数据结构转换正在进行;如果你看到一个grep,那么你知道一些过滤/选择正在进行.你可以用foreach来完成所有的操作,但你的代码的意图不像map或grep那么清楚,你甚至可以用if和goto这样做,如果你想,但是你的意图将被埋在更多的语法和状态跟踪下. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |