我很确定我在这里错过了一些东西,因为我对Shapeless很陌生,而且我正在学习,但是何时需要 Aux技术? 我发现通过将它提升到另一个“伴侣” type定义的签名中,它被用来暴露一个type语句。 trait F[A] { type R; def value: R } object F { type Aux[A,RR] = F[A] { type R = RR } } 但是这不就是把R放在F的types签名中吗? trait F[A,R] { def value: R } implicit def fint = new F[Int,Long] { val value = 1L } implicit def ffloat = new F[Float,Double] { val […]