【问题标题】:Erlang lists:map behaving strangeErlang 列表:地图表现异常
【发布时间】:2013-02-05 20:28:03
【问题描述】:

好的,就这样吧:

我得到了这样一段代码:

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。

有什么帮助吗?

【问题讨论】:

  • B 怎么搞的?我建议您发布一个混乱输出的示例。

标签: erlang


【解决方案1】:

您看到 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

【讨论】:

  • 像这样打印它解决了它:io:format("~p ~p",[[a|A],[b|B]])
猜你喜欢
  • 2016-02-17
  • 1970-01-01
  • 2012-06-24
  • 2014-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
相关资源
最近更新 更多