Scala: ограничение параметра универсального типа для типа внутри другого параметра - PullRequest
3 голосов
/ 28 сентября 2011

Я все еще пытаюсь понять язык Scala, поэтому, пожалуйста, ответьте на все мои вопросы.

Могу ли я сослаться на абстрактный тип из одного параметра типа в границу для другого? Например, есть ли способ заставить следующий код работать? Суть того, чего я пытаюсь достичь, заключается в том, что KEY для параметра MAP в C должен быть SomeType параметра T.

trait T1 { 
    type SomeType;
}

trait MyMap[KEY, VALUE] { ... }


class C { 
  def m[T <: T1, MAP <: MyMap[T.SomeType, Int]] { ... }
}    

1 Ответ

6 голосов
/ 28 сентября 2011

Вам нужно тип проекции :

def m[T <: T1, MAP <: MyMap[T#SomeType, Int]]
...