The nil coalescing operator unwraps an optional and returns the value inside if there is one. If there isn’t a value – if the optional was nil
– then a default value is used instead. Either way, the result won’t be optional: it will either be the value from inside the optional or the default value used as a backup.
Here’s a function that accepts an integer as its only parameter and returns an optional string:
func username(for id: Int) -> String? {
if id == 1 {
return "Taylor Swift"
} else {
return nil
}
}
If we call that with ID 15 we’ll get back nil
because the user isn’t recognized, but with nil coalescing we can provide a default value of “Anonymous” like this:
let user = username(for: 15) ?? "Anonymous"
That will check the result that comes back from the username()
function: if it’s a string then it will be unwrapped and placed into user
, but if it has nil
inside then “Anonymous” will be used instead.
SPONSORED Join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer! Hurry up because it'll be available only until September 29th.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.