IO.puts与IO.inspect

时间:2017-06-20 22:53:43

标签: elixir

在我看来,IO.putsIO.inspect都用于打印到控制台。他们之间有什么区别?

2 个答案:

答案 0 :(得分:8)

添加到上一个答案后,IO.inspect可以打印任意elixir术语,其中包含label:的可选关键字列表以及初始化Inspect.Opts结构的值:

@spec inspect(item, Keyword.t) :: item when item: var

IO.puts要求参数为字符串或实现String.Chars协议的结构:

@spec puts(device, chardata | String.Chars.t) :: :ok

答案 1 :(得分:4)

阅读Elixir文档,看起来IO.puts/2只是编写并追加换行符。

IO.inspect/2将执行相同的操作,但它也会返回第一个未更改的值(因此它可以链接),启用漂亮的打印/装饰和其他格式选项。

友情提醒一下,hexdocs真的很棒。我能够轻松找到问题的答案并自己学习差异。我强烈建议您阅读通常用于发现您可能不了解的其他功能的模块。