gpt4 book ai didi

Elixir 在 Enum.reverse 方法上返回笑脸

转载 作者:行者123 更新时间:2023-12-02 09:26:49 24 4
gpt4 key购买 nike

我正在查看enum文档,这是我的代码:

defmodule Math do
def reverse(list), do: Enum.reverse(list)
end

我运行它:

IO.write(Math.reverse([1,2,3,4,5,6,7,8]))

但是,一些奇怪的事情正在发生。我收到“嘟嘟”声,同时 these funny characters ..

我对 Elixir 相当陌生,但我不确定从哪里开始调试过程。我哪里出错了?谢谢!

最佳答案

此问题与 Enum.reverse/1 函数没有直接关系。您可以通过简单地将整数列表传递给 IO.write/1 来重现完全相同的事情:

iex(5)> IO.write([8,7,6,5,4,3,2,1])
^H^G^F^E^D^C^B^A:ok

这里发生的事情是 IO.write/1 正在接收一个整数列表,并将其视为“字符列表”。使用单引号时可以创建字符列表,例如 'foo'。使用 i/1 为我们提供了很多详细信息:

iex(22)> i('foo')
Term
'foo'
Data type
List
Description
This is a list of integers that is printed as a sequence of characters
delimited by single quotes because all the integers in it represent valid
ASCII characters. Conventionally, such lists of integers are referred to as
"char lists" (more precisely, a char list is a list of Unicode codepoints,
and ASCII is a subset of Unicode).
Raw representation
[102, 111, 111]
Reference modules
List

我猜想这些字符被窗口奇怪地解释,这会导致声音效果和“笑脸”。

编辑:入门文档也非常有用:http://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html#utf-8-and-unicode

关于Elixir 在 Enum.reverse 方法上返回笑脸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37199023/

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