%% ----------------------------------------------------
%% @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]) -> 6
%% 6 没匹配上k1 k2 也没提供默认值,返回6
%%
%% @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, []) ->
K.
效率不高,不建议频繁使用,写这个纯粹是因为懒的写case套娃,线上高频操作该用case还是别吝啬你的小手
本文介绍了一个轻量级的键值匹配函数match_kv,用于在特定条件下快速查找键对应的值。当键存在时返回对应的值,否则返回默认值或键本身。此函数适用于不需要复杂查找逻辑的简单场景。
2万+

被折叠的 条评论
为什么被折叠?



