Scala 嵌套隐式类型参数

Scala nested implicit type parameters

你能解释一下这个方法定义中的类型 T 吗?这是来自加特林。我知道冒号用于上下文绑定值。在这里我看到它们是嵌套的。 # 有什么用?

implicit def stringToExpression[T: TypeCaster: Types[NonValidable]#DoesNotContain: ClassTag](string: String): Expression[T] = string.el

下面的方法签名被翻译成:

implicit def stringToExpression(string: String)(implicit t: TyperCaster[T], nv: Types[NonValidable]#DoesNotContain[T], ct: ClassTag[T]) = string.el

# 在此上下文中是一个 Type Projection 用于指代内部 DoesNotContain[T] class.