遵守以下代码为什么我不能在Scala中省略this.apply(_)中的“apply”?
trait Example {
type O
def apply(o: O)
def f(o: O) = this.apply(o)
}
其中Scala中编译罚款。我希望我可以像往常一样排除apply
,写作def f(o: O) = this(o)
。然而,这导致了令人振奋的错误信息
type mismatch; found : o.type (with underlying type Example.this.O)
required: _31.O where val _31: Example
possible cause: missing arguments for method or constructor
谁能给我解释一下这是怎么回事?
对不起,我没有推断出实际的问题,但我明白了你的观点。你能否进一步解释? – 2011-12-28 04:21:04
这是一个抽象类型的错误。注意,如果你使O型具体化(例如“type O = String”),或者如果你把它变成一个类型参数(例如“trait Example [O]”),那么非编译的例子就可以工作。) – extempore 2011-12-29 05:21:23
你碰巧知道问题编号为这个错误? – 2012-01-02 20:41:14