【发布时间】:2016-09-13 02:30:51
【问题描述】:
我有一个函数可以将包含空序列的选项转换为无:
def emptyToNone[A](seqOpt: Option[Seq[A]]): Option[Seq[A]] = seqOpt match {
case Some(Seq()) => None
case _ => seqOpt
}
我想通过将 Seq 替换为类型参数来使其更通用,因此它可以与其他 Scala 集合一起使用。
我可以这样做:
def emptyToNone[C[A] <: Traversable[A], A](seqOpt: Option[C[A]]): Option[C[A]] = seqOpt match {
case Some(s) if s.isEmpty => None
case _ => seqOpt
}
但我必须使用 2 个类型参数,C 和 A。我可以在这里简化函数签名吗?
【问题讨论】: