在我看来,IO.puts
和IO.inspect
都用于打印到控制台。他们之间有什么区别?
答案 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真的很棒。我能够轻松找到问题的答案并自己学习差异。我强烈建议您阅读通常用于发现您可能不了解的其他功能的模块。