IO.puts与IO.inspect

koo*_*kat 9 elixir

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

Mik*_*hot 8

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

@spec inspect(item, Keyword.t) :: item when item: var
Run Code Online (Sandbox Code Playgroud)

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

@spec puts(device, chardata | String.Chars.t) :: :ok
Run Code Online (Sandbox Code Playgroud)


Tyl*_*ham 5

通过阅读Elixir文档,看起来就像IO.puts/2只是要编写并添加换行符。

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

友情提醒,hexdocs确实很棒。我能够轻松找到您问题的答案,并自己了解差异。我强烈建议您通读通常使用的模块,以发现可能无法从中受益的其他功能。