我可以在Predef的API文档中看到它们是泛型函数类型(From)=> To的子类,但就是这样.嗯什么?也许某处有文档,但搜索引擎不能很好地处理"<:<"之类的"名称",所以我无法找到它.
后续问题:我什么时候应该使用这些时髦的符号/类,为什么?
SLS 将类型参数子句的语法指定为
TypeParamClause ::= ‘[’ VariantTypeParam {‘,’ VariantTypeParam} ‘]’
FunTypeParamClause::= ‘[’ TypeParam {‘,’ TypeParam} ‘]’
VariantTypeParam ::= {Annotation} [‘+’ | ‘-’] TypeParam
TypeParam ::= (id | ‘_’) [TypeParamClause] [‘>:’ Type] [‘<:’ Type] {‘<%’ Type} {‘:’ Type} {‘<%’ Type} {‘<%’ Type}
Run Code Online (Sandbox Code Playgroud)
我们看到 >:, <:, <%, <%,:作为类型参数子句中允许的保留名称。有没有一种方法可以在类型参数子句中使用广义类型约束符号名称<:<,=:=使得
def f[T =:= 42] = ???
Run Code Online (Sandbox Code Playgroud)
将扩展到
def f[T](implicit ev: T =:= 42) = ???
Run Code Online (Sandbox Code Playgroud)
类似于上下文绑定的方式
def f[T: Numeric] = ??? …Run Code Online (Sandbox Code Playgroud)