gpt4 book ai didi

Erlang:proplists:get_value/2 还是模式匹配?

转载 作者:行者123 更新时间:2023-12-03 21:28:26 25 4
gpt4 key购买 nike

我有一个始终具有相同形式的元组列表(即元组总是以相同的顺序出现):

1> L = [{a, 1}. {b,2}, {c, 3}, {d, 4}].

知道列表只有几个元素,提取与键关联的值的最佳方法是什么?

假设列表作为参数传递给函数,以提取我应该使用的值:
proplists:get_value(a, L).
proplists:get_value(b, L).
...
proplists:get_valus(d, L).

或者我应该简单地使用模式匹配作为:
[{a, 1}. {b,2}, {c, 3}, {d, 4}] = L.

最佳答案

如果你真的知道你的列表是相同的形式模式匹配是最简单的

[{a, A}, {b, B}, {c, C}, {d, D}] = L,

您可以将其与以下内容进行比较
[A, B, C, D] = [ proplists:get_value(X, L) || X <- [a,b,c,d] ],

或者
A = proplists:get_value(a, L),
B = proplists:get_value(b, L),
C = proplists:get_value(c, L),
D = proplists:get_value(d, L),

或者
[A, B, C, D] = [ V || Key <- [a,b,c,d], {K, V} <- L, K =:= Key ],

模式匹配也将是最快的。您也可以使用 lists:keyfind/3它被实现为 Bif 并且比 proplist:get_value/2 快得多但对于短名单并不重要。

关于Erlang:proplists:get_value/2 还是模式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16053870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com