当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Elixir Inspect.Algebra.container_doc用法及代码示例


Elixir语言中 Inspect.Algebra.container_doc 相关用法介绍如下。

用法:

container_doc(left, collection, right, inspect_opts, fun, opts \\ [])
(从 1.6.0 开始)
@spec container_doc(
  t(),
  [any()],
  t(),
  Inspect.Opts.t(),
  (term(), Inspect.Opts.t() -> t()),
  keyword()
) ::
  t()

根据限制和内容将collection 包装在leftright 中。

它使用给定的 leftright 文档作为环绕,并使用分隔符文档 separator 来分隔 docs 中的项目。如果集合中的所有条目都是简单文档(文本或字符串),则此函数尝试将尽可能多的内容放在同一行上。如果它们不简单,如果它们不适合,则每行只显示一个条目。

遵守给定 inspect_opts 中的限制,当达到该限制时,此函数将停止处理并改为输出 "..."

选项

  • :separator - 每个文档之间使用的分隔符
  • :break - 如果 :strict ,总是在每个元素之间中断。如果 :flex ,仅在必要时中断。如果 :maybe ,仅当所有元素都是基于文本的时才选择 :flex,否则为 :strict

例子

iex> inspect_opts = %Inspect.Opts{limit: :infinity}
iex> fun = fn i, _opts -> to_string(i) end
iex> doc = Inspect.Algebra.container_doc("[", Enum.to_list(1..5), "]", inspect_opts, fun)
iex> Inspect.Algebra.format(doc, 5) |> IO.iodata_to_binary()
"[1,\n 2,\n 3,\n 4,\n 5]"

iex> inspect_opts = %Inspect.Opts{limit: 3}
iex> fun = fn i, _opts -> to_string(i) end
iex> doc = Inspect.Algebra.container_doc("[", Enum.to_list(1..5), "]", inspect_opts, fun)
iex> Inspect.Algebra.format(doc, 20) |> IO.iodata_to_binary()
"[1, 2, 3, ...]"

iex> inspect_opts = %Inspect.Opts{limit: 3}
iex> fun = fn i, _opts -> to_string(i) end
iex> opts = [separator: "!"]
iex> doc = Inspect.Algebra.container_doc("[", Enum.to_list(1..5), "]", inspect_opts, fun, opts)
iex> Inspect.Algebra.format(doc, 20) |> IO.iodata_to_binary()
"[1! 2! 3! ...]"

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Inspect.Algebra.container_doc(left, collection, right, inspect_opts, fun, opts \\ [])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。