Swift does let you declare an immutable variable without assigning a value to it immediately. As long as you assign a value to that variable once and only once on every code path before the variable is read:
let x: Int
if cond {
x = 1
} else {
x = 2
}
// read x here