Elixir,IO.inspect不修剪一长串清单

Its*_*ret 37 elixir inspect

当我做:

IO.inspect [:right, :top, :left, ...very_long_list]
Run Code Online (Sandbox Code Playgroud)

我只得到第一项(这是解决15拼图的动作列表),如下所示:

[:right, :top, :left, :bot, :bot, :left, :top, :top, :right, :right, :bot,
  :left, :bot, :left, :top, :right, :bot, :right, :top, :top, :left, :bot,
  :left, :top, :right, :right, :bot, :bot, :left, :top, :top, :left, :bot,
  :right, :top, :right, :bot, :left, :left, :top, :right, :bot, :right, :top,
  :left, :left, :bot, ...] # => See the '...'
                                instead I would like 
                                to get the complete list
Run Code Online (Sandbox Code Playgroud)

如何判断IO.inspect不修剪清单?有选择还是什么?

Pat*_*ity 58

有关Inspect.Opts可用选项的说明,请参阅:

  • :limit - 限制为元组,位串,地图,列表和任何其他项目集合打印的项目数.它不适用于字符串或字符串,默认值为50.如果您不想将项目数限制为特定数字,请使用 :infinity.

因此,您可以传递limit: :infinity打印所有元素:

IO.inspect(list, limit: :infinity)
Run Code Online (Sandbox Code Playgroud)

对于字符串和字符串,有一个特殊的选项叫做:printable_limit.可以组合这两个选项以确保所有元素都完全打印.

  • 启动`iex`并输入`h inspect`,它会告诉你看看'h Inspect.Opts`,它会显示所有选项. (2认同)

Phi*_*lip 14

对于那些想要这个以上解决方案不适合的字符串的人.

使用printable_limit: integer/:infinity https://hexdocs.pm/elixir/Inspect.Opts.html