Erlang 列出超过 8 的单个数字?

发布于 2024-12-04 02:12:33 字数 123 浏览 1 评论 0原文

以某种奇怪的方式,列表中所有超过 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

ゝ杯具 2024-12-11 02:12:33

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]

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:

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]
花落人断肠 2024-12-11 02:12:33

使用 ~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.

溺深海 2024-12-11 02:12:33

来自文档: 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"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文