Я новичок в Scala и продвинутых языках программирования. Я пытаюсь решить следующую проблему.
У меня есть:
val s: Seq[SomeMutableType[_]]
Я предполагаю, что все элементы в последовательности имеют один и тот же тип (но не знаю, какой из них на данный момент).
Как я могу позвонить :
def proc[T](v0: SomeMutableType[T], v1: SomeMutableType[T]) { /* ... */ }
на что-то вроде
proc(s(0), s(1))
Компилятор жалуется:
- несоответствие типов; найдено: SomeMutableType [_ 351 $], где требуется тип _ 351 $:
Я новичок в Scala и продвинутых языках программирования. Я пытаюсь решить следующую проблему.
У меня есть:
val s: Seq[SomeMutableType[_]]
Я предполагаю, что все элементы в последовательности имеют один и тот же тип (но не знаю, какой из них на данный момент).
Как я могу позвонить :
def proc[T](v0: SomeMutableType[T], v1: SomeMutableType[T]) { /* ... */ }
на что-то вроде
proc(s(0), s(1))
Компилятор жалуется:
- несоответствие типов; найдено: SomeMutableType [_ 351 $], где требуется тип _ 351 $:
Я новичок в Scala и продвинутых языках программирования. Я пытаюсь решить следующую проблему.
У меня есть:
val s: Seq[SomeMutableType[_]]
Я предполагаю, что все элементы в последовательности имеют один и тот же тип (но не знаю, какой из них на данный момент).
Как я могу позвонить :
def proc[T](v0: SomeMutableType[T], v1: SomeMutableType[T]) { /* ... */ }
на что-то вроде
proc(s(0), s(1))
Компилятор жалуется:
- несоответствие типов; найдено: SomeMutableType [_ 351 $], где требуется тип _ 351 $: SomeMutableType [Any] Примечание: _ $ 351 <: Any, но класс SomeMutableType является неизменным для типа T. Вы вместо этого может пожелать определить T как + T. (SLS 4.5)
Я думал об этой ковариантной вещи, но не верю, что это имеет смысл в моем случае. Я просто хочу, чтобы компилятор мне поверил, когда я скажу, что s (0) и s (1) относятся к одному типу! Обычно я делаю это с помощью некоторого преобразования, но я не могу привести здесь SomeMutableType [T], поскольку T неизвестен из-за стирания. Конечно, я не могу изменить определение процедуры.