當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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 \\ [])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。