map can transform the value inside an optional while preserving nil.

Transform when present

optional_map.swift
let rawCount = 
let count = Int(rawCount)
let doubled = count.map { value in
    return value * 2
}
let output = doubled == nil ? "missing" : "double=\(doubled!)"

print("rawCount=\(rawCount)")
print(output)
let rawCount = 
let count = Int(rawCount)
let doubled = count.map { value in
    return value * 2
}
let output = doubled == nil ? "missing" : "double=\(doubled!)"

print("rawCount=\(rawCount)")
print(output)
let rawCount = 
let count = Int(rawCount)
let doubled = count.map { value in
    return value * 2
}
let output = doubled == nil ? "missing" : "double=\(doubled!)"

print("rawCount=\(rawCount)")
print(output)
optional map Optional `map` runs the closure only when the optional has a value. If the optional is `nil`, the mapped result is also `nil`.