Мы должны рассмотреть случай списков странного размера, например, List("aa","1","bb","2","cc","3","dd")
:
- Должны ли мы вернуть
List((aa,1), (bb,2), (cc,3), (dd,dd))
? - Должны ли мы отбросить последний элемент и вернуть
List((aa,1), (bb,2), (cc,3))
? - Должны ли мы указать, что ошибка каким-то образом, возможно, с
Option
? - Должны ли мы потерпеть крах?
Вот пример возврата Option[List(String, String)]
для обозначения ошибки:
def maybeGrouped(list: List[String]): Option[List[(String, String)]] =
Try(
list
.sliding(2, 2)
.map { case List(a,b) => (a, b) }
.toList
).toOption