Scala 2.7:引用不明确(导入两次)

时间:2010-04-30 09:40:41

标签: scala ambiguous

在Scala 2.7中,我想使用一个方法作为同一类的另一个方法的参数。

我有一个类和对象是伴侣:

class mM(var elem:Matrix){
    //apply a function on a dimension rows (1) or cols (2) 
    def app(func:Iterable[Double]=>Double)(dim : Int) : Matrix = {
        ...
    }
    //utility function
    def logsumexp(): Double = {...}
}

object mM{
    def apply(elem:Matrix):mM={new mM(elem)}
    def logsumexp(elem:Iterable[Double]): Double ={
         this.apply(elem.asInstanceOf[Matrix]).logsumexp()
    }
}

通常我使用logsumexp这样mM(matrix).logsumexp但是如果想将它应用于我不能使用mM(matrix).app(mM.logsumexp)(1)的行,我会收到错误:

error: reference to mM is ambiguous;
it is imported twice in the same scope by
import mM
and import mM

最优雅的解决方案是什么?我应该将logsumexp()更改为另一个类吗?

谢谢,=)

1 个答案:

答案 0 :(得分:0)

我最终只在我的mM类中使用了new mM(matrix)而不是mM(matrix)语句,并避免了错误。

@Rex Kerr:你是对的我把类型改为Matrix

由于