读取元组键和值

时间:2012-08-26 22:15:50

标签: erlang tuples data-retrieval

如何在Erlang中读取元组键和值?

我有这个变量:

Params = [<<"TPUIBrowser">>,0,18,
 {[{<<"End">>,<<"location-1ÿ">>},{<<"Start">>,<<"location-1">>}]},
 null]

我希望得到<<"End">><<"Start">>的值。

我怎么能在Erlang中做到这一点?

我可以这样做:

[_,_,_,A,_] = Params.
{[{_,B},{_,C}]} = A.

但这感觉非常冗长且容易出错(即当我收到更多的参数时)。什么是最好的 erlang 方式?

2 个答案:

答案 0 :(得分:2)

lists库中有相应的功能。查看lists:keyfind

[_,_,_,{A},_] = Params,
{Key, Value} = lists:keyfind(<<"End">>, 1, A).

(我假设您知道Params A}

的位置

答案 1 :(得分:1)

或者,您可以使用records,如果您计划添加更多字段,则可以使用{{3}}。

由于您在此使用列表{[{_,B},{_,C}]} = A.我假设可能有更多元素;在这种情况下,制作一个递归函数来解压缩它可能会更好。