我正在从Learn You Some Erlang学习Erlang我已经见过模式 [_|_]
两次,但找不到任何相关信息。这种用法似乎是多余的,因为从 (1) 中省略它并在 (2) 中用 _ 替换它会产生相同的结果,而不会降低可读性。这是我使用 Erlang 的第一周,所以我可能完全错了。
(1) 来自bestest_qsort :
bestest_qsort(L=[_|_]) ->
bestest_qsort(L, []).
(2) 来自 here :
error:{badmatch,[_|_]} -> ok
最佳答案
模式[p1 | p2]
匹配一个非空列表,其头部与模式 p1
匹配,尾部与模式 p2
匹配。因此,由于模式 _
匹配任何内容,因此 [_ | _]
匹配任何非空列表。
_
本身可以匹配任何内容,包括空列表。
关于erlang - Erlang 中的模式 [_|_] 有什么具体含义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30961510/