Scala 2.7: ссылка неоднозначна (импортируется дважды) - PullRequest
1 голос
/ 30 апреля 2010

В 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 голосов
/ 04 мая 2010

В конце концов, я использовал только операторы new mM(matrix), а не mM(matrix) в своем классе мМ и избежал ошибки.

@ Рекс Керр: Вы правы, я изменил тип на Matrix.

Спасибо

...