0
の型パラメータ:私はタイプパラメータで配列を置き換えることによって、それがより一般的な作りたいスカラ:私はNoneに空の配列を含むオプションを変換する関数持つコレクション
def emptyToNone[A](seqOpt: Option[Seq[A]]): Option[Seq[A]] = seqOpt match {
case Some(Seq()) => None
case _ => seqOpt
}
を、それ他の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.私はここに関数のシグネチャを簡素化することができますか?
または簡素化する: 'seqOpt.filter(_空ではありません。)'。 –
@AlexeyRomanov私は 'seqOpt.map(s => if if(s.nonEmpty)s else None)'は空のものを削除せず代わりにNoneを探していると思います。 – kali
@kaliこれは型チェックしません(あるいは、それは 'Option [AnyRef]'を返します)。 –