我试图了解它是如何Generic工作的(也是TypeClass如此).github wiki在示例和文档上非常稀少.是否有一个规范的博客/文档页面描述Generic和TypeClass详细?
具体来说,这两种方法有什么区别?:
def find1[T](implicit gen: Generic[T]): Generic[T] = gen
def find2[T](implicit gen: Generic[T]): Generic[T] { type Repr = gen.Repr } = gen
Run Code Online (Sandbox Code Playgroud)
特定
object Generic {
type Aux[T, Repr0] = Generic[T] { type Repr = Repr0 }
def apply[T](implicit gen: Generic[T]): Aux[T, gen.Repr] = gen
implicit def materialize[T, R]: Aux[T, R] = macro GenericMacros.materialize[T, R]
}
Run Code Online (Sandbox Code Playgroud)