2

好的,这里是:

我有一段这样的代码:

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])

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

发生的情况是 A 打印正确(“[0,0]”),而 B 元素的第一次打印是正确的(“74”的两次打印),列表本身打印为“JJ”(这些字符是每次执行总是不同的)

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

有什么帮助吗?

4

1 回答 1

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
于 2013-02-20T18:16:49.710 回答