У меня есть List[Option[MyClass]]
с None
в случайных позициях, и мне нужно «заполнить» этот список еще раз, начиная с List[MyClass]
, сохраняя заказ.Как заменить (заполнить) Нет записей в списке опций из другого списка, используя идиоматическую Scala?
Здесь приведены примеры списков и ожидаемый результат:
val listA = List(Some(3),None,Some(5),None,None)
val listB = List(7,8,9)
val expectedList = List(Some(3), Some(7), Some(5), Some(8), Some(9))
Итак, как бы идиоматических Scala обработать этот список?
«В любое время, когда вы звоните на итераторе, вы твердо находитесь в стране побочных эффектов». Правда, но в этом случае они аккуратно инкапсулируются в методе, который остается ссылочно прозрачным. –
@Paul: Верно, я думаю, что другое решение отлично, и это подход, который я решил решить эту проблему в моем собственном коде. Но это связано с побочными эффектами и в некоторых подобных ситуациях, которые могут быть не идеальными. –