Как сопоставить сразу после понимания? - PullRequest
0 голосов
/ 09 июня 2018

Я хотел применить сопоставление с шаблоном сразу после yield для получения полного понимания Option[Int] следующим образом:

object Main extends App {
  val i: Int = for (
    int1 <- i1();
    int2 <- i2()
  ) yield (int2) match {
    case Some(i) => i
    case None => 0
  } 

  def i1(): Option[Int] = None

  def i2(): Option[Int] = None
}

DEMO

К сожалению, он не компилируется.Есть ли способ избежать "временного" Option[Int] объявления результата?

1 Ответ

0 голосов
/ 09 июня 2018

Как насчет добавления скобок?

val i: Int = (for {
   int1 <- i1()
   int2 <- i2()
} yield (int2)) match {
   case Some(i) => i
   case None => 0
}

Редактировать: добавлены фигурные скобки

...