【发布时间】:2019-01-19 15:09:10
【问题描述】:
我正在尝试理解 scala 编译器自动生成的一些代码,但我不知道要搜索什么。
我有以下课程:
trait Arrow1[F[_, _]]
abstract class Test {
def f1[F[_, _] : Arrow1, A, B, C](fa: F[A,B], fb: F[A, C]): F[A, (B, C)]
def f2[A: Seq, B](a: A): Boolean
}
反编译类文件后,f1 和 f2 方法的签名如下:
public abstract class Test {
public abstract <F, A, B, C> F f1(F var1, F var2, Arrow1<F> var3);
public abstract <A, B> boolean f2(A var1, Seq<A> var2);
}
如您所见,这些方法有一个附加参数。我在哪里可以找到有关此方法类型参数表示法 F[_, _] : Arrow1 的一些文档?
【问题讨论】:
-
实际上,它可以被标记为重复:What are Scala context and view bounds?,但我决定保留当前规范中的引号,而不是重定向到 2010 年的答案(它并没有太大改变 wrt 上下文边界,但仍然...)。
标签: scala types type-parameter context-bound