我正在从Learn You Some Erlang学习Erlang,我已经两次见过[_|_]
模式,但无法找到任何信息。这种用法似乎是多余的,因为从(1)中省略它并用_ in(2)中的_舍入它会产生相同的结果,而不会降低可读性。这是我与Erlang的第一周,所以我可能完全错了。
(1)来自bestest_qsort:
bestest_qsort(L=[_|_]) ->
bestest_qsort(L, []).
(2)来自here:
error:{badmatch,[_|_]} -> ok
答案 0 :(得分:10)
模式[p1 | p2]
匹配非空列表,其头部匹配模式p1
,其尾部与模式p2
匹配。因此,由于模式_
匹配任何内容,[_ | _]
匹配任何非空列表。
_
本身匹配任何内容,包括空列表。