Как позвонить getOrElse + foreach - PullRequest
0 голосов
/ 25 апреля 2020

Допустим, у меня есть класс case с Option [Map [String, String], и я хочу выполнить итерацию throw.

Этот код работает в Scala 2.13, но в сборке Scala 2.11 не удается.

some.getOrElse(None).foreach {
case (key: String, value: String) =>
  if true doSomething
}

Там написано, что Cannot resolve symbol foreach Как это исправить?

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

почему бы не использовать пустую карту по умолчанию?

some.getOrElse(Map.empty()).foreach {
case (key: String, value: String) =>
  if true doSomething
}
1 голос
/ 25 апреля 2020

Он не компилируется на 2.13 (или 2.12), поэтому существует явная проблема с вашим кодом.

Я думаю, вы пытаетесь сделать следующее:

some.map(_.map {
  case (key: String, value: String) =>
    ???
})

Это вернет None, если some равно None, в противном случае он вызовет map для Map и вернет результат в Some(?).

...