When I unwrap a value in Swift, I\'m always uncertain on how to name the variabile which will contain it:
override func touchesCancelled(touches: Set
One may also use guard-let
construct to unwrap optionals. However, guard
creates a new variable which will exist outside the else statement so the naming options available for the unwrapped variable is different when compared to if-let
construct.
Refer the code example below:
import Foundation
let str = Optional("Hello, Swift")
func sameName_guard() {
// 1. All Good
// This is fine since previous declaration of "str" is in a different scope
guard let str = str else {
return
}
print(str)
}
func differentName_guard() {
let str1 = Optional("Hello, Swift")
// 2. ERROR
// This generates error as str1 is in the same scope
guard let str1 = str1 else {
return
}
print(str1)
}
sameName_guard()
differentName_guard()