以某种奇怪的方式,列表中的所有8号以上的数字都成为某种ascii? [8] - > [ “\ B”]
请尽量帮助我:)
答案 0 :(得分:8)
String不是Erlang中的数据类型,它只是一个整数列表。但是如果可能的话,Erlang shell会尝试将列表显示为字符串:
1> S = [65, 66, 67, 68, 69, 70].
"ABCDEF"
2> S = "ABCDEF".
"ABCDEF"
3> io:write(S).
[65,66,67,68,69,70]ok
4> [65, 66].
"AB"
5> [65, 66, 1].
[65,66,1]
答案 1 :(得分:1)
用~w代替~p打印 你的问题应该消失。
~p尝试将列表中的元素解释为ascii。 ~W不
答案 2 :(得分:0)
来自文档:http://www.erlang.org/doc/reference_manual/data_types.html
字符串用双引号(“)括起来,但不是Erlang中的数据类型。而是字符串”hello“是列表的简写[$ h,$ e,$ l,$ l,$ o],那是[104,101,108,108,111]。
两个相邻的字符串文字连接成一个。这是在编译时完成的,不会产生任何运行时开销。例如:
“string”“42”
相当于
“string42”