if let unwraps an optional only when it contains a value.

Unwrap when present

optional_binding.swift
let rawAge = 
let parsedAge = Int(rawAge)
var message = "missing"

if let age = parsedAge {
    message = "age=\(age)"
} else {
    message = "missing"
}

print(message)
let rawAge = 
let parsedAge = Int(rawAge)
var message = "missing"

if let age = parsedAge {
    message = "age=\(age)"
} else {
    message = "missing"
}

print(message)
let rawAge = 
let parsedAge = Int(rawAge)
var message = "missing"

if let age = parsedAge {
    message = "age=\(age)"
} else {
    message = "missing"
}

print(message)
if let Optional binding creates a non-optional constant inside the `if` branch. The `else` branch handles the missing-value case.