Erlang列出:地图行为奇怪

时间:2013-02-20 17:51:47

标签: erlang

好的,所以这里:

我得到了一段这样的代码:

A=lists:map(fun(Result) -> Result#o.prop1 
   end, ResultList),
B=lists:map(fun(Result) -> io:format("~p~n",Result#o.prop2),
   Result#o.prop2 
   end, ResultList),
io:format("~p ~p",[A,B])

在这段代码之前,有一个数据库搜索结果列表(每个结果的prop1值标记为“0”,prop2值标记为“74”)。

A会打印恰到好处(“[0,0]”),而B元素的第一次打印是一个正确的(两个打印“74”),列表本身打印为“JJ”(这些字符在每次执行中总是不同的)

如果我按元素打印删除元素,或者即使我切换顺序(B的行然后是A的行),我总是弄乱B。

任何帮助?

1 个答案:

答案 0 :(得分:3)

你看到J而不是74的原因是因为Erlang将字符串视为整数列表,而J在ASCII中是74(十进制)。

1> io:format("~s~n", [[74, 74]]).
JJ
ok
2> io:format("~s~n", [[71, 72, 73, 74, 75]]).
GHIJK
ok
3> io:format("~p~n", [[71, 72, 73, 74, 75]]).
"GHIJK"
ok
相关问题