6
我正在閱讀這段代碼很長一段時間。我將它輸入到REPL中,它也可以工作。誰能解釋這個scala代碼的含義
但我不知道這裏發生了什麼。爲什麼以及這是如何工作的!
import shapeless._
case class Size[L <: HList](get : Int)
object Size {
implicit val hnilSize = Size[HNil](0)
implicit def hconsSize[H, T <: HList](implicit tailSize: Size[T]) =
Size[H :: T](1 + tailSize.get)
def apply[L <: HList](l : L)(implicit size: Size[L]) : Int = size.get
}
Size(1 :: "Foo" :: true :: HNil)
有人能解釋這一步一步,並幫助我瞭解這裏發生了什麼。