Взгляните на тип возврата метода get
.Он возвращает Option[Int]
, а не Int
:
def get (key: A): Option[B]
. Option[Int]
может быть либо Some
, содержащим целое число, либо None
(которое вы получите, если ключ былотсутствует на карте).
Если вы просто хотите получить Int
и, возможно, выбросить NoSuchElementException
, если данный ключ не существует на карте, просто используйте метод apply
или его короткий синтаксический сахар:
x("a") + x("b")
Или, если вы хотите добавить значения внутри Option[Int]
с, возвращая еще один Option[Int]
:
for (a <- x.get("a"); b <- x.get("b")) yield a + b
Это даст вам Some
, если оба ключа присутствуют, и None
, если один или оба отсутствуют.
В качестве альтернативы, если вы не заботитесь о пропавших ключах и хотите использоватьзначение по умолчанию, если ключ отсутствует, используйте getOrElse
:
x.getOrElse("a", 0) + x.getOrElse("b", 0)