SE-0345 introduces new shorthand syntax for unwrapping optionals into shadowed variables of the same name using if let
and guard let
. This means we can now write code like this:
var name: String? = "Linda"
if let name {
print("Hello, \(name)!")
}
Whereas previously we would have written code more like this:
if let name = name {
print("Hello, \(name)!")
}
if let unwrappedName = name {
print("Hello, \(unwrappedName)!")
}
This change doesn’t extend to properties inside objects, which means code like this will not work:
struct User {
var name: String
}
let user: User? = User(name: "Linda")
if let user.name {
print("Welcome, \(user.name)!")
}
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 October 1st.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Download all Swift 5.7 changes as a playground Link to Swift 5.7 changes
Link copied to your pasteboard.