Declaring
// Use question mark to say this variable can be nil.
var myLastName: String?
myLastName = nil
// Check if nil (null)
if (myLastName == nil) {
myLastName = "Moeykens"
}
// Using the Nil Coalescing Operator to get a value
let lastName = myLastName ?? "No last name found"
// Note: If myLastName is nil then "No last name found" is used.
Getting Value from Optional
Check for value using
Optional Binding (if let)
if let lastName = myLastName {
// It's guaranteed to have a value.
print("Last name was found:\(lastName)")
}
else {
print("No last name found.")
}
Unwrapping
"Unwrap" or "Unwrapping" refers to getting a non-nil value of the optional. There are a few different ways to do this without having to write an if statement every time to check if a value exists.
// Force Unwrap with exclamation point
print(myLastName!) // This will generate an ERROR if myLastName is nil
// A different way might be to use a ternary conditional operator to avoid the error
let lastName = myLastName == nil ? "none" : myLastName
print(lastName)
// An even easier way is to use the Nil Coalescing Operator (??)
let lastName = myLastName ?? "none"
print(lastName)
// The Nil Coalescing Operator automatically unwraps the optional if there is a value
print(myLastName) // This will NOT generate an error if myLastName is nil
// Will just print: "nil"
(Updated for Swift 2.2)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.