gpt4 book ai didi

elixir - 如何将字符串列表转换为整数列表?

转载 作者:行者123 更新时间:2023-12-04 21:57:51 25 4
gpt4 key购买 nike

我正在尝试请求一个数字列表(例如:“1 2 3 4 5 6”)并输出一个整数列表(例如:“[1, 2, 3, 4, 5, 7]”)。我想出了以下代码:

IO.gets ("Enter a list: ")
|> String.trim
|> String.split
|> Enum.map(&String.to_integer/1)

这不会编译并给我以下错误:
== Compilation error in file test.ex ==
** (ArgumentError) argument error
:erlang.binary_to_integer("Enter")
(elixir) lib/enum.ex:1270: Enum."-map/2-lists^map/1-0-"/2
test.ex:4: (file)
(elixir) lib/kernel/parallel_compiler.ex:121: anonymous fn/4 in
Kernel.ParallelCompiler.spawn_compilers/1

我已经通过 iex 一次一行地运行这段代码,使用每个函数的结果作为下一个函数的输入,并获得格式正确的列表但是当我把它们放在一个文件中并运行它时,它甚至不会编译...

任何帮助都会很棒。

最佳答案

问题是 IO.gets 之间有空格和左括号。这会起作用:

IO.gets("Enter a list: ")
|> String.trim
|> String.split
|> Enum.map(&String.to_integer/1)

运算符优先级很重要:

#  3           1
IO.inspect (IO.inspect(42, label: "foo"))
# 2
|> IO.inspect(label: "bar")

foo: 42
bar: 42
42

让我们看看这里发生了什么:我放置了表示执行顺序的数字。第一个执行的是“foo”,然后是“bar”,然后才是第一个放置的检查。发生这种情况是因为 Elixir 允许(尽管不鼓励)不带括号的函数调用,以及管道 |>优先于函数调用。

关于elixir - 如何将字符串列表转换为整数列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48274457/

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