好的,所以这里:
我得到了一段这样的代码:
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。
任何帮助?
答案 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