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


Elixir Enum.slide用法及代碼示例


Elixir語言中 Enum.slide 相關用法介紹如下。

用法:

slide(enumerable, range_or_single_index, insertion_index)
(從 1.13.0 開始)

range_or_single_index 給定的單個或多個元素從 enumerable 滑動到 insertion_index

要移動的範圍的語義與 Enum.slice/2 的語義相匹配。具體來說,這意味著:

  • 索引是標準化的,這意味著負索引將從末尾開始計算(例如,-1 表示可枚舉的最後一個元素)。這將導致在不提供constant-time 計數的列表等類型上遍曆您的可枚舉對象two

  • 如果規範化索引範圍的last 超出範圍,則該範圍被截斷到最後一個元素。

  • 如果規範化索引範圍的first 超出範圍,則選擇的滑動範圍將為空,因此您將取回輸入列表。

  • 減小範圍(例如 5..0//1 )也會選擇要移動的空範圍,因此您將取回輸入列表。

  • 除 1 之外的任何步長的範圍都會引發錯誤。

例子

# Slide a single element
iex> Enum.slide([:a, :b, :c, :d, :e, :f, :g], 5, 1)
[:a, :f, :b, :c, :d, :e, :g]

# Slide a range of elements backward
iex> Enum.slide([:a, :b, :c, :d, :e, :f, :g], 3..5, 1)
[:a, :d, :e, :f, :b, :c, :g]

# Slide a range of elements forward
iex> Enum.slide([:a, :b, :c, :d, :e, :f, :g], 1..3, 5)
[:a, :e, :f, :b, :c, :d, :g]

# Slide with negative indices (counting from the end)
iex> Enum.slide([:a, :b, :c, :d, :e, :f, :g], 3..-1//1, 2)
[:a, :b, :d, :e, :f, :g, :c]
iex> Enum.slide([:a, :b, :c, :d, :e, :f, :g], -4..-2, 1)
[:a, :d, :e, :f, :b, :c, :g]

# Insert at negative indices (counting from the end)
iex> Enum.slide([:a, :b, :c, :d, :e, :f, :g], 3, -1)
[:a, :b, :c, :e, :f, :g, :d]

相關用法


注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Enum.slide(enumerable, range_or_single_index, insertion_index)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。