type Banana = Banana.type
object Banana {
// ...
}
最好只是
不
如果你真的使用了黑客,请注意
expr: Type
是表达式(称为类型归属):
sealed trait Banana; case object Banana extends Banana
def f[T](x: T)(implicit eq: T =:= Banana): T = x
// f(Banana) // tries to call with T = Banana.type, fails
f(Banana: Banana) // calls f with the right T = Banana instead of T = Banana.type