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


Scala Option.unzip用法及代码示例


unzip 方法(或属性)属于 scala.Option 类(class),其相关用法说明如下。

用法 一

final def unzip[A1, A2](implicit asPair: A <:< (A1, A2)): (Option[A1], Option[A2])

将一对 Option 转换为第一个元素的 Option 和第二个元素的 Option。

这相当于:

option match {
  case Some((x, y)) => (Some(x), Some(y))
  case _            => (None,    None)
}

类型参数:

A1

元素对前半部分的类型

A2

元素对后半部分的类型

值参数:

asPair

一个隐式转换,它断言此 Option 的元素类型是一对。

返回:

一对Options,分别包含这个Option的元素对的前半部分和后半部分。

源码:

Option.scala

用法 二

def unzip[A1, A2](implicit asPair: A => (A1, A2)): (Iterable[A1], Iterable[A2])
option2Iterable 隐式添加

将此可迭代的对集合转换为每对的前半部分和后半部分的两个集合。

val xs = Iterable(
           (1, "one"),
           (2, "two"),
           (3, "three")).unzip
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three))

类型参数:

A1

前半部分元素对的类型

A2

后半部分元素对的类型

值参数:

asPair

一个隐式转换,它断言这个可迭代集合的元素类型是一对。

返回:

一对可迭代集合,分别包含此可迭代集合的每个元素对的前半部分和后半部分。

继承自:

collection.IterableOps.unzip

源码:

Iterable.scala

相关用法


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