包含大于8的单个数字的Erlang列表?

px9o7tmv  于 2022-12-08  发布在  Erlang
关注(0)|答案(3)|浏览(143)

以某种奇怪的方式,所有超过8的数字,单个,在一个列表中变成某种ASCII码?

[8] -> ["\b"]

请试着帮助我解决这个问题:)

gzszwxb4

gzszwxb41#

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

tpxzln5u2#

~w而不是~p打印它,您的问题应该会消失。
~p尝试将列表中的元素解释为ASCII。~w则不会。

vc9ivgsu

vc9ivgsu3#

来自文档:http://www.erlang.org/doc/reference_manual/data_types.html

2.11字符串

字符串用双引号(")括起来,但不是Erlang中的数据类型。字符串" hello "是列表[$h,$e,$l,$l,$o]的简写,即[104,101,108,108,111]。
两个相邻的字符串文字连接成一个。这是在编译时完成的,不会产生任何运行时开销。例如:
"字符串""42"
相当于
"字符串42"

相关问题