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)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。