Option<T> class sealed

A type that represents the presence (Some) or absence (None) of a value.

Pattern matching is recommended for working with Option types.

Option<int> foo = Some(42);

print(switch (foo) {
  Some(value: var bar) => 'Some value: $bar',
  None() => 'No value!'
});

See also: Rust: Option

Implementers
Available extensions

Constructors

Option.from(T? value)
Creates an Option from the given nullable T value.
factory
Option.none()
Constructs a None option.
const
factory
Option.some(T value)
Constructs a Some option from the given value.
const
factory

Properties

hashCode → int
The hash code for this object.
no setteroverride
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

and<U>(Option<U> other) → Option<U>
Returns None<U> if this Option is None<T>, otherwise returns other.
andThen<U>(Option<U> fn(T)) → Option<U>
Returns None<U> if this Option is None<T>, otherwise calls fn with the held value and returns the returned Option.
call() → T
Shortcut to call Option.unwrap().
expect(String message) → T
Returns the held value of this Option if it is Some, or throws OptionError with the given message if this Option is None.
flatten() → Option<T>

Available on Option<Option<T>>, provided by the OptionFlatten extension

Flattens a nested Option type value one level.
inspect(void fn(T)) → Option<T>
Calls the provided function with the contained value if this Option is Some.
isNone() → bool
Returns whether or not this Option holds no value (None).
isSome() → bool
Returns whether or not this Option holds a value (Some).
isSomeAnd(bool predicate(T)) → bool
Returns whether or not this Option holds a value (Some) and the held value matches the given predicate.
iter() → Iterable<T>
Returns an Iterable of the held value.
map<U>(U mapFn(T)) → Option<U>
Maps this Option<T> to an Option<U> using the given function with the held value.
mapOr<U>(U orValue, U mapFn(T)) → Option<U>
Maps this Option<T> to an Option<U> using the given function with the held value if this Option<T> is Some. Otherwise returns the provided orValue as Some(orValue).
mapOrElse<U>(U orFn(), U mapFn(T)) → Option<U>
Maps this Option<T> to an Option<U> using the given mapFn function with the held value if this Option is Some. Otherwise returns the result of orFn as Some(orFn()).
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
okOr<E>(E err) → Result<T, E>
Converts this Option<T> into a Result<T, E> using the given err if None.
okOrElse<E>(E elseFn()) → Result<T, E>
Converts this Option<T> into a Result<T, E> using the returned value from elseFn if None.
or(Option<T> other) → Option<T>
Returns this Option if this Option is Some<T>, otherwise returns other.
orElse(Option<T> fn()) → Option<T>
Returns this Option if this Option is Some<T>, otherwise calls fn and returns the returned Option.
toString() → String
A string representation of this object.
override
transpose() → Result<Option<T>, E>

Available on Option<Result<T, E>>, provided by the OptionTranspose extension

Transposes this Option<Result<T, E>> into a Result<Option<T>, E>.
unwrap() → T
Returns the held value of this Option if it is Some.
unwrapOr(T orValue) → T
Returns the held value of this Option if it is Some, or the given value if this Option is None.
unwrapOrElse(T elseFn()) → T
Returns the held value of this Option if it is Some, or returns the returned value from elseFn if this Option is None.
unzip() → (Option<T>, Option<U>)

Available on Option<(T, U)>, provided by the OptionUnzip extension

Unzips this Option if this Option holds a Record of two values.
where(bool predicate(T)) → Option<T>
Filters this Option based on the given predicate function.
xor(Option<T> other) → Option<T>
Returns Some if exactly one of this Option and other is Some, otherwise returns None.
zip<U>(Option<U> other) → Option<(T, U)>
Zips this Option with another Option, returning a Record of their held values.
zipWith<U, V>(Option<U> other, V zipFn(T, U)) → Option<V>
Zips this Option with another Option using the given function.

Operators

operator ==(Object other) → bool
Compare equality between two Option values.
override