Optional.flatMap(_:)
Преобразует, избегая вложенных опционалов.
Сигнатура
func flatMap<U>(_ transform: (Wrapped) -> U?) -> U?Похож на map, но transform сам возвращает опционал. Это предотвращает появление двойного опционала U??.
let s: String? = "42"
let n = s.flatMap { Int($0) }
print(n) // Optional(42)