4
上Type classes and generic derivation看着特拉維斯布朗的優秀的博客文章中,我看到了下面的方法:類型參數中`::`的含義?
implicit def hconsParser[H: Parser, T <: HList: Parser]: Parser[H :: T] =
new Parser[H :: T] {
def apply(s: String): Option[H :: T] = s.split(",").toList match {
case cell +: rest => for {
head <- implicitly[Parser[H]].apply(cell)
tail <- implicitly[Parser[T]].apply(rest.mkString(","))
} yield head :: tail
}
}
什麼的H :: T
在Parser[H :: T]
意思?
此外,case cell +: rest
如何處理s
,即輸入到apply
爲空的情況?