gpt4 book ai didi

elixir - 在 Elixir 中打印列表给出字符串

转载 作者:行者123 更新时间:2023-12-02 06:31:29 25 4
gpt4 key购买 nike

我正在运行下面的代码,将列表中的数字加 10。但是,我得到了一个字符列表。

result = Enum.map([1, 2, 3], fn x -> x + 10 end)

结果 \w\f\r

如果我从 + 更改至*该代码工作正常。 result = Enum.map([1, 2, 3], fn x -> x + 10 end)返回 [10, 20, 30]正如预期的那样。

但是,当我从 10 更改为 32 时,我也遇到了类似的错误,返回 ' @'

知道这意味着什么以及如何解决它吗?谢谢

最佳答案

在 Elixir 中,字符列表(两个单引号之间的值 'like this')只是一个数字列表。因此,当您有一个数字列表,其中所有数字都可以写为字符(在 ASCII 范围内)时,iex 会为您打印它们。

iex(1)> 'hello'
'hello'
iex(2)> [104, 101, 108, 108, 111]
'hello'

您仍然有一个数字列表,并且仍然可以对其进行其他操作,就像它是一个数字列表一样,例如

iex(3)> [104, 101, 108, 108, 111] == 'hello'
true
iex(4)> Enum.map 'hello', fn x -> x * 10 end
[1040, 1010, 1080, 1080, 1110]

如果在 iex 中您想要查看列表中的数值,您可以在列表中附加一个不可查看的字符,例如 0,这将强制 iex 显示数值列表而不是字符列表。

iex(5)> [104, 101, 108, 108, 111] ++ [0]
[104, 101, 108, 108, 111, 0]

您可以阅读有关字符列表的更多信息 here

关于elixir - 在 Elixir 中打印列表给出字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40659684/

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