dict["key"]
возвращает необязательный параметр, и вы хотите сопоставить это значение с другим значением, если оно присутствует, или получить nil
в противном случае. Это именно то, для чего Optional.map()
:
Оценивает данное закрытие, когда этот Optional
экземпляр не nil
, передавая развернутое значение в качестве параметра.
В вашем случае:
let x = dict["key"].map { mapValue($0) }
или просто
let x = dict["key"].map(mapValue)
Это также имеет преимущество перед
let x = dict["key"] != nil ? mapValue(dict["key"]) : nil
// or the hypothetical
let x = dict["key"] ¿¿ mapValue(dict["key"])
, что dict["key"]
оценивается только один раз, а не дважды.