0
私は型崩れして、製品の種類の実装を次ています再帰呼び出しはどこですか?
trait CsvEncoder[A] {
def encode(value: A): List[String]
}
implicit val hnilEncoder: CsvEncoder[HNil] =
createEncoder(_ => Nil)
implicit def hlistEncoder[H, T <: HList](
implicit
hEncoder: CsvEncoder[H],
tEncoder: CsvEncoder[T]
): CsvEncoder[H :: T] =
createEncoder {
case h :: t =>
hEncoder.encode(h) ++ tEncoder.encode(t)
}
をし、それは次のように使用されます。
val reprEncoder: CsvEncoder[String :: Int :: Boolean :: HNil] =
implicitly
println(reprEncoder.encode("abc" :: 123 :: true :: HNil))
がHList
のインスタンスの実装を見て、私はどこでも再帰呼び出しを見ることはできません。 HList
はリストに似ているので、再帰的に処理する必要がありますが、どこでそれが起こったのかは設定できません。