Я читаю "Программирование в Scala и один из примеров кода ниже:Как переопределить Map
Ниже код дает эту ошибку:
Multiple markers at this line
- type mismatch; found : Unit required: B
- type mismatch; found : Unit required: B
abstract class CustomMap[A, B] extends Map[A, B] {
def get(key: A) : Option[B] = {
if (contains(key)){
new Some(getValue(key))
}
else
None
}
def getValue(key : A) = {
}
}
Ошибка возникает в строке:
new Some(getValue(key))
Какую форму должен взять тип возврата? Я попытался вернуть int & String компилятор не принимает его.
Почему вы хотите это сделать? Редко необходимо подклассифицировать встроенные коллекции, но если вам действительно нужно, вы должны сначала прочитать документацию по коллекциям (http://docs.scala-lang.org/overviews/collections/introduction.html). –
@Aaron Novstrup см. Вопрос edit –
Боюсь, вам придется предоставить дополнительную информацию о том, чего вы надеетесь достичь. Ошибка компиляции легко фиксируется (например, определяя 'getValue' как' this (key) ', но это не кажется особенно полезным. –