了解万灵药的输出[重复]

问题描述 投票:0回答:1
我目前正在学习Elixir,并正在“ Programming Elixir 1.6”一书中进行所有练习。由于练习本身非常简单,因此我很难理解有关输出的内容。

在第5章末尾,我被要求使用匿名函数重写这些行:

Enum.map [1, 2, 3, 4], fn x -> x + 2 end Enum.each([1, 2, 3, 4], fn x -> IO.inspect x end

所以我写了这个:

Enum.map([1, 2, 3, 4], &(&1 + 2)) Enum.each([1, 2, 3, 4], &IO.inspect/1)

但是运行此命令后,我的输出仅来自检查:

λ elixir functions-5.exs 1 2 3 4

所以我在这里添加了一些IO.puts

IO.puts Enum.map([1, 2, 3, 4], &(&1 + 2)) IO.puts Enum.each([1, 2, 3, 4], &IO.inspect/1)

至少可以说,输出确实很奇怪:

λ elixir functions-5.exs ╚╝║═ 1 2 3 4 ok

尝试了一些替代语法并在两次调用之间使用了变量之后,我尝试将这些行直接执行到Interactive Elixir中:

iex(2)> Enum.map([1, 2, 3, 4], &(&1 + 2)) [3, 4, 5, 6]

这种方式很好用!为什么?

iex(1)> IO.puts Enum.map([1, 2, 3, 4], &(&1 + 2)) ╚╝║═ :ok

IO.puts似乎再次破坏了格式,为什么又要破坏?

我想念的是什么?为什么不同的执行上下文没有相同的输出?

总结我的总体问题:威士忌探戈狐步舞???

output elixir
1个回答
1
投票
我不确定你为什么得到╚╝║═;我得到该列表的不同输出:

iex(1)> IO.puts [3,4,5,6] ^C^D^E^F :ok

[IO.inspect,另一方面,尝试打印传递给它的任何内容的源代码表示。
© www.soinside.com 2019 - 2024. All rights reserved.