Я знаю, что необязательные цепочки вот так:
someOptional?.someProperty
- это в основном
someOptional.map { $0.someProperty }
Однако я обнаружил, что выполнение обоих одновременно невозможно:
// someOptional?.someProperty evaluates to an optional type, right?
// so the map method should exist!
someOptional?.someProperty.map(someClosure) // can't find "map"
Вот MCVE:
let s: String? = "Hello"
s?.hashValue.map(Double.init)
Я думаю, что написание чего-то подобного выше более читабельно, чем:
s.map { Double($0.hashValue) }
Так что я действительно хотел бы использовать опциональную цепочкуи map
одновременно.
Как мне это сделать?