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 Enum.slice用法及代碼示例
- Elixir Enum.split_with用法及代碼示例
- Elixir Enum.sum用法及代碼示例
- Elixir Enum.split用法及代碼示例
- Elixir Enum.split_while用法及代碼示例
- Elixir Enum.shuffle用法及代碼示例
- Elixir Enum.sort_by用法及代碼示例
- Elixir Enum.sort用法及代碼示例
- Elixir Enum.scan用法及代碼示例
- Elixir Enum.unzip用法及代碼示例
- Elixir Enum.min_max用法及代碼示例
- Elixir Enum.reduce_while用法及代碼示例
- Elixir Enum.at用法及代碼示例
- Elixir Enum.dedup用法及代碼示例
- Elixir Enum.zip用法及代碼示例
- Elixir Enum.find_value用法及代碼示例
- Elixir Enum.product用法及代碼示例
- Elixir Enum.map_join用法及代碼示例
- Elixir Enum.zip_with用法及代碼示例
- Elixir Enum.intersperse用法及代碼示例
- Elixir Enum.flat_map用法及代碼示例
- Elixir Enum.count用法及代碼示例
- Elixir Enum.fetch用法及代碼示例
- Elixir Enum.frequencies用法及代碼示例
- Elixir Enum.drop用法及代碼示例
注:本文由純淨天空篩選整理自elixir-lang.org大神的英文原創作品 Enum.slide(enumerable, range_or_single_index, insertion_index)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。