写了一点 Perl 代码,给数据排序的时候发现,其实下面这种写法挺啰嗦的,
@all = sort { $a->{groups} <=> $b->{groups} } @all;
相比之下,Python的写法如下,
all = sorted(all, key=lambda x: x["groups"])
Python 的写法,也不算很简洁,但好处在哪里呢?我觉得好处是,Python 的 sorted,通过指定「key」,让代码从操作性的变成了声明性的(或曰描述性的),通过声明,让背后的代码做具体工作,于是写起来更友好,而且稍微增加了一点可读性。
有个 Perl 模块 https://metacpan.org/pod/Sort::Key ,提供使用 key 排序的方法,而且支持多个 key,我觉得挺好的。不过,排个序还要 use 一个模块,未免复杂。