如何在Erlang中读取元组键和值?
我有这个变量:
Params = [<<"TPUIBrowser">>,0,18,
{[{<<"End">>,<<"location-1ÿ">>},{<<"Start">>,<<"location-1">>}]},
null]
我希望得到<<"End">>
和<<"Start">>
的值。
我怎么能在Erlang中做到这一点?
我可以这样做:
[_,_,_,A,_] = Params.
{[{_,B},{_,C}]} = A.
但这感觉非常冗长且容易出错(即当我收到更多的参数时)。什么是最好的 erlang 方式?
答案 0 :(得分:2)
lists库中有相应的功能。查看lists:keyfind:
[_,_,_,{A},_] = Params,
{Key, Value} = lists:keyfind(<<"End">>, 1, A).
(我假设您知道Params
A
}
答案 1 :(得分:1)
或者,您可以使用records,如果您计划添加更多字段,则可以使用{{3}}。
由于您在此使用列表{[{_,B},{_,C}]} = A.
我假设可能有更多元素;在这种情况下,制作一个递归函数来解压缩它可能会更好。