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


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