4
私は2つのHListsから「非空」の値を選択するために型崩れを使用しようとしています:マッピング
import shapeless.{ HNil, Poly2}
object choose extends Poly2 {
implicit def caseInt =
at[Int,Int]{
case (_,n) if n > 0 => n
case (o,_) => o
}
implicit def caseString =
at[String,String] {
case (_,n) if n.nonEmpty => n
case(o,_) => o
}
}
val g = "a" :: "" :: 0 :: HNil
val h = "" :: "a" :: 5 :: HNil
g.zip(h).map(choose)
私が正しく理解し、私が提供する必要がある場合は、私は暗黙のマッパー を逃すのエラーが出ますmap
はPoly2
ないPoly1
を取る:あなたは非常に近いですが、choose
の定義は少し間違っている