if let — частный случай развёртки optional; if case / guard case — общий pattern matching для enum associated values и других паттернов.
Разбор
if case .ready(let x) = state.
if let читаемее для optional.
switch предпочтителен при многих кейсах.
- Можно комбинировать
where.
Итог
Pattern matching обобщает optional binding на любые enum-паттерны.