2

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

我有这个变量:

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

我想获得 和 的<<"End">><<"Start">>

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

我可以这样做:

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

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

4

2 回答 2

2

列表库中有这方面的功能。查看列表:keyfind

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

(我假设你知道你在Params哪里A

于 2012-08-26T22:20:19.607 回答
1

或者,如果您计划添加更多字段, 您可以使用特别适合的记录。

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

于 2012-08-26T22:36:04.090 回答