Optional

enum Optional<Wrapped> : ExpressibleByNilLiteral
  • SwifterSwift: Get self of default value (if self is nil).

    let foo: String? = nil
    print(foo.unwrapped(or: "bar")) -> "bar"
    
    let bar: String? = "bar"
    print(bar.unwrapped(or: "foo")) -> "bar"
    

    Declaration

    Swift

    public func unwrapped(or defaultValue: Wrapped) -> Wrapped

    Parameters

    defaultValue

    default value to return if self is nil.

    Return Value

    self if not nil or default value if nil.

  • SwifterSwift: Gets the wrapped value of an optional. If the optional is nil, throw a custom error.

       let foo: String? = nil
       try print(foo.unwrapped(or: MyError.notFound)) -> error: MyError.notFound
    
       let bar: String? = "bar"
       try print(bar.unwrapped(or: MyError.notFound)) -> "bar"
    

    Throws

    The error passed in.

    Declaration

    Swift

    public func unwrapped(or error: Error) throws -> Wrapped

    Parameters

    error

    The error to throw if the optional is nil.

    Return Value

    The value wrapped by the optional.

  • SwifterSwift: Runs a block to Wrapped if not nil

    let foo: String? = nil
    foo.run { unwrappedFoo in
        // block will never run sice foo is nill
        print(unwrappedFoo)
    }
    
    let bar: String? = "bar"
    bar.run { unwrappedBar in
        // block will run sice bar is not nill
        print(unwrappedBar) -> "bar"
    }
    

    Declaration

    Swift

    public func run(_ block: (Wrapped) -> Void)

    Parameters

    block

    a block to run if self is not nil.

  • SwifterSwift: Assign an optional value to a variable only if the value is not nil.

    let someParameter: String? = nil
    let parameters = [String:Any]() //Some parameters to be attached to a GET request
    parameters[someKey] ??= someParameter //It won't be added to the parameters dict
    

    Declaration

    Swift

    public static func ??= (lhs: inout Optional, rhs: Optional)

    Parameters

    lhs

    Any?

    rhs

    Any?

  • Check if optional is nil or empty collection.

    Declaration

    Swift

    public var isNilOrEmpty: Bool { get }