Erlang 列出超过 8 的单个数字?
以某种奇怪的方式,列表中所有超过 8
的数字(单个)都变成了某种 ASCII?
[8] -> ["\b"]
请尝试帮助我解决这个问题:)
In some weird way all the numbers over 8
, single, in a list becomes some kind of ASCII?
[8] -> ["\b"]
Please try to help me with this one :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
String 不是 Erlang 中的数据类型,它只是一个整数列表。但如果可能的话,Erlang shell 会尝试将列表显示为字符串:
String is not a data type in Erlang, it's just a list of integers. But Erlang shell try to display lists as strings if possible:
使用
~w
而不是~p
打印它,您的问题就会消失。~p
尝试将列表中的元素解释为 ASCII。~w
没有。Print it with
~w
instead of~p
, and your issue should go away.~p
tries to interpret the elements in the list as ASCII.~w
does not.来自文档: http://www.erlang.org/doc/reference_manual/data_types.html< /a>
2.11 String
字符串用双引号 (") 括起来,但不是 Erlang 中的数据类型。相反,字符串“hello”是列表的简写[$h,$e,$l,$l,$o],即 [104,101,108,108,111]。
是在编译时完成的,不会产生任何运行时开销。
这 字符串”“42”
相当于
“string42”
From documentation: http://www.erlang.org/doc/reference_manual/data_types.html
2.11 String
Strings are enclosed in double quotes ("), but is not a data type in Erlang. Instead a string "hello" is shorthand for the list [$h,$e,$l,$l,$o], that is [104,101,108,108,111].
Two adjacent string literals are concatenated into one. This is done at compile-time and does not incur any runtime overhead. Example:
"string" "42"
is equivalent to
"string42"