Вам нужно будет указать значение по умолчанию для возврата в случае, если один из Option
s равен None
.Давайте предположим, что по умолчанию 0
- если это так, вы можете использовать:
def function(in: JsonMapping): Int = in.l0 // get Option[L1JsonMapping]
.flatMap(_.l1) // flatMap to get an Option[L2JsonMapping]
.flatMap(_.myTarget) // flatMap to get an Option[Int]
.getOrElse(0) // get value value or default
Используется Option.flatMap
, о котором вы можете прочитать в ScalaDocs :
Возвращает результат применения [данной функции] f к значению этого scala.Option, если это scala.Option не пусто.Возвращает None, если этот scala.Option пуст.
ПРИМЕЧАНИЕ что это просто возвращает значение myTarget
- я предполагаю, что вы присваиваете его result
просто для возврата result
немедленно - если это так, это избыточно.