【问题标题】:How to use IO.inspect on a long list without trimming it?如何在不修剪长列表的情况下使用 IO.inspect?
【发布时间】:2020-11-18 04:22:13
【问题描述】:

当我这样做时:

IO.inspect [:right, :top, :left, ...very_long_list]

我只得到第一个项目(它是解决 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

我如何告诉IO.inspect 不要修剪列表?有什么选择吗?

【问题讨论】:

    标签: elixir


    【解决方案1】:

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

    • :limit - 限制为元组、位串、映射、列表和任何其他项目集合打印的项目数量。它不是 适用于字符串或字符列表,默认为 50。如果你不想要 要将项目数限制为特定数量,请使用 :infinity

    因此您可以通过limit: :infinity 打印所有元素:

    IO.inspect(list, limit: :infinity)
    

    对于字符串和字符列表,有一个称为:printable_limit 的特殊选项。这两个选项可以结合使用,以确保完全打印所有元素。

    【讨论】:

    • 确实如此,你知道我在哪里可以找到所有可用选项的列表吗?
    • 启动iex 并输入h inspect,它会告诉你查看h Inspect.Opts,它会显示所有选项。
    【解决方案2】:

    对于那些想要上述解决方案不适合的字符串的人。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多