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

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.
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.
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
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.
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
operator ~() → T
Shortcut to call Option.unwrap().