打印列表或地图的两个版本是
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
如果您在 iex 中运行代码,那么您看到的第一个列表将由
IO.inspect
打印,第二个列表是返回值。
如果在 iex 中运行
IO.inspect(1)
,您将看到 1
两次,因为 IO.inspect
始终返回第一个参数,而 iex 始终打印您输入的表达式的返回值。