web-dev-qa-db-ja.com

エリクサー、IO。長いリストをトリミングしないように検査

私がする時:

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リストをトリミングしませんか?オプションか何かありますか?

39
ItsASecret

利用可能なオプションの説明については Inspect.Opts を参照してください:

  • :limit-タプル、ビット文字列、マップ、リスト、およびその他のアイテムのコレクションに対して出力されるアイテムの数を制限します。文字列や文字リストには適用されず、デフォルトは50です。アイテムの数を特定の数に制限したくない場合は、:infinityを使用します。

したがって、limit: :infinityを渡してすべての要素を出力できます。

IO.inspect(list, limit: :infinity)

文字列と文字リストの場合、:printable_limitという特別なオプションがあります。これらのオプションの両方を組み合わせて、すべての要素が完全に印刷されるようにすることができます。

64
Patrick Oscity

上記の解決策ではない文字列にこれを必要とする人のために。

使用する printable_limit: integer/:infinityhttps://hexdocs.pm/elixir/Inspect.Opts.html

14
Philip