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


Elixir Stream.zip用法及代码示例


Elixir语言中 Stream.zip 相关用法介绍如下。

用法一

zip(enumerables)
(从 1.4.0 开始)
@spec zip(enumerables) :: Enumerable.t()
when enumerables: [Enumerable.t()] | Enumerable.t()

将有限的可枚举集合中的相应元素压缩到一个元组流中。

只要给定集合中的任何可枚举完成,压缩就会完成。

例子

iex> concat = Stream.concat(1..3, 4..6)
iex> cycle = Stream.cycle(["foo", "bar", "baz"])
iex> Stream.zip([concat, [:a, :b, :c], cycle]) |> Enum.to_list()
[{1, :a, "foo"}, {2, :b, "bar"}, {3, :c, "baz"}]

用法二

zip(enumerable1, enumerable2)
@spec zip(Enumerable.t(), Enumerable.t()) :: Enumerable.t()

懒惰地把两个可枚举的东西压缩在一起。

只要任一可枚举完成,压缩就会完成。

例子

iex> concat = Stream.concat(1..3, 4..6)
iex> cycle = Stream.cycle([:a, :b, :c])
iex> Stream.zip(concat, cycle) |> Enum.to_list()
[{1, :a}, {2, :b}, {3, :c}, {4, :a}, {5, :b}, {6, :c}]

相关用法


注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Stream.zip(enumerables)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。