相关疑难解决方法(0)

Scala 2.8中<:<,<%<和=:=的含义是什么?它们在哪里记录?

我可以在Predef的API文档中看到它们是泛型函数类型(From)=> To的子类,但就是这样.嗯什么?也许某处有文档,但搜索引擎不能很好地处理"<:<"之类的"名称",所以我无法找到它.

后续问题:我什么时候应该使用这些时髦的符号/类,为什么?

scala type-constraints scala-2.8

197
推荐指数
4
解决办法
3万
查看次数

类型参数子句中的广义约束?

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)

scala type-constraints type-parameter kind-projector

2
推荐指数
1
解决办法
37
查看次数