IO.检查打印列表或地图两次

问题描述 投票:0回答:1

打印列表或地图的两个版本是

IO.inspect

的默认行为

例如,下面的操作将打印两个单独的列表。

这是控制台上的输出:

[
  ok: %{
    "code" => "a",
    "id" => "1"
  },
  ok: %{
    "code" => "b",
    "id" => "2"
  },
 ...
 ...
]
[
  ok: %{
    "code" => "a",
    "id" => "1"
  },
  ok: %{
    "code" => "b",
    "id" => "2"
  },
]

为什么要这样做?输出中的第二个列表在终端中采用不同的字体颜色。不确定这是否表明了某些事情。

  def parse_csv do
    @csv_path
    |> Path.expand(__DIR__)
    |> File.stream!
    |> CSV.decode(headers: true)
    |> Enum.into([])
    |> IO.inspect
  end
elixir
1个回答
0
投票

如果您在 iex 中运行代码,那么您看到的第一个列表将由

IO.inspect
打印,第二个列表是返回值。

如果在 iex 中运行

IO.inspect(1)
,您将看到
1
两次,因为
IO.inspect
始终返回第一个参数,而 iex 始终打印您输入的表达式的返回值。

© www.soinside.com 2019 - 2024. All rights reserved.