-1

我有以下财产清单

PropList = [{numbers, ["22", "10"]}, {etc, "22"}].

我希望得到这样的列表["22", "10"]

proplists:get_value(numbers, PropList).

问题是我将列表中的两个字符串连接起来,即"2210". 我尝试使用propertylists:lookup/2获取整数元组和模式匹配来提取列表。但我最终还是得到了"2210".

我猜这是因为 erlang 在内存中存储字符串的方式..有人可以帮我吗?

稍后编辑:如果我在字符串列表上进行映射,我已经设法提取和使用数据......也许这只是一个打印问题?

稍后编辑我不知道发生了什么,也许我太累了:)对不起,伙计们。明天删除这个问题

4

2 回答 2

1
1> PropList = [{numbers, ["22", "10"]}, {etc, "22"}].       
[{numbers,["22","10"]},{etc,"22"}]

2> proplists:get_value(numbers, PropList).
["22","10"]

3> 

这是我给定代码段的输出。

于 2012-02-13T16:09:38.990 回答
0

是的,代码是正确的。如果您使用io:format,它将在输出时连接所有可能的内容。

Erlang 中有一种元类型,称为iolist“可用于输入/输出”。它可以是字符列表(整数)、其他 iolists 或二进制文件。听起来很混乱,但很方便。

如果您想打印漂亮,请使用~p格式。

换句话说:

2> io:format([[65, $B, 67], <<"DEF">>, [[71, 72], 73], "JKL", 10]).
ABCDEFGHIJKL
ok
3> io:format("~p", [[[65, $B, 67], <<"DEF">>, [[71, 72], 73], "JKL", 10]]).
["ABC",<<"DEF">>,["GH",73],"JKL",10]ok
于 2012-02-14T13:46:22.693 回答