Add .getOrElse() method to Swift's Optional<T>, to unwrap value with fallback to default value. Idea borrowed from Scala language.
// An extension to Optional type: | |
// getOrElse() will return optional's value if exists, otherwise the default value provided as argument will be returned. | |
// | |
// Note: Since Xcode6 beta 5, you can use '??' operator. | |
// | |
// (c) Tomek Cejner 2014 | |
// @tomekcejner | |
extension Optional { | |
func getOrElse(val:T) -> T { | |
if self != nil { | |
return self! | |
} else { | |
return val | |
} | |
} | |
} |
var optionalName: String? = "John Appleseed" | |
optionalName.getOrElse("nobody") // "John Appleseed" | |
optionalName = nil | |
optionalName.getOrElse("nobody") // "nobody" |
This comment has been minimized.
This comment has been minimized.
We can use let name = optionalName ?? "nobody" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
This will create 'else' object even if we will not use it
Here is one more way to safely unwrap Optional with default
Usage: