[97, 98, 0]. [97,98,0] 但是使用 ~s 的输出不是我所期望的: 127> io:format(-6ren">
gpt4 book ai didi

erlang - 控制序列如何工作?

转载 作者:行者123 更新时间:2023-12-01 15:08:36 24 4
gpt4 key购买 nike

以下输出符合我的预期:

125> [97, 98, 99].
"abc"

126> [97, 98, 0].
[97,98,0]

但是使用 ~s 的输出不是我所期望的:

127> io:format("~s~n", [[97, 98, 0]]).
ab^@
ok

如何解释该输出?

最佳答案

~s 控制序列期望获取字符串、二进制或原子,并“使用字符串语法”打印它。由于 Erlang 字符串只是整数列表,因此它也尝试将本例中的 [97, 98, 0] 打印为字符串。另一方面,外壳tries to guess这个整数列表是否应该是一个字符串。

^@ 表示 NUL 字符。您可能熟悉 caret notation ,其中 ^A 表示字节 1,因为 A 是字母表中的第一个字母 - 或者换句话说,它表示值比字符的 ASCII 值小 64 的字节,因为 A 是ASCII 码为 65。将其外推到 0 字节,您会发现 @,即 ASCII 中的 64。

关于erlang - 控制序列如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42166462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com