【erlang】一个轻量级的结果匹配

%% ----------------------------------------------------
%% @doc
%%     不适用于lists:keyfind/3的情况下,一个轻量级的结果匹配
%%     匹配k返回v 无则返回none
%%     match_kv(3,[1,2,3,4,5]) -> 4
%%     1,2,3,4,5 分别是k1=1,v1=2,k2=3,v2=4,不符合则返回默认值5
%%     3 匹配上了k2 所以返回v2
%%
%%     match_kv(6,[1,2,3,4,5]) -> 5
%%     6 没匹配上k1 k2 所以返回默认值5
%%
%%     match_kv(6,[1,2,3,4]) -> none
%%     6 没匹配上k1 k2 也没提供默认值,返回none
%%
%% @end
%% ----------------------------------------------------
match_kv(K, [K, V | _T]) ->
	V;
match_kv(K, [_K1, _V | T]) ->
	match_kv(K, T);
match_kv(_K, [V | []]) ->
	V;
match_kv(_K, []) ->
	none.

效率不高,不建议频繁使用,写这个纯粹是因为懒的写case套娃,线上高频操作该用case还是别吝啬你的小手

上一篇:2.6 拉普拉斯定理


下一篇:CSS的一些简单概念