ThrowingUnwrap
A simple package to add a throwing unwrap operator (~!
) to Optionals in Swift.
Import
Add this to the package-wide dependencies
in Package.swift:
.package(url: "https://github.com/allotropeinc/ThrowingUnwrap.git", from: "1.0.0")
And add this to the target-specific dependencies
:
.product(name: "ThrowingUnwrap", package: "ThrowingUnwrap")
Usage
func test() throws -> String {
let stringThing: String? = "Hello world!" // Optional string, but not nil...
let attempt = try stringThing~! // ...therefore, unwrap succeeds...
return attempt // ...and we can return the value.
}
Let's look at an example when the value is nil
:
func test() throws -> String {
let stringThing: String? = nil // It's nil this time...
let attempt = try stringThing~! // ...therefore, unwrap fails...
return attempt // ...and this never gets called.
}
The type thrown is defined in the library, and is called UnwrapError
, and has exactly one parameter, failedType
, which is typed as Any.Type
.