ValueOrAbsent<T> class
sealed
Distinguishes an omitted copy value from an explicit replacement value.
This is useful for copyWith methods where a nullable field must be able to
keep its current value, change to a non-null value, or change to null.
class Example {
const Example({this.name});
final String? name;
Example copyWith({
ValueOrAbsent<String?> name = const ValueOrAbsent.absent(),
}) =>
Example(name: name.valueOr(this.name));
}
example.copyWith(); // keep existing name
example.copyWith(name: ValueOrAbsent.value('room')); // set name
example.copyWith(name: ValueOrAbsent.value(null)); // clear name
Constructors
- ValueOrAbsent.absent()
-
Creates an omitted value that preserves the current field.
constfactory
- ValueOrAbsent.value(T value)
-
Creates an explicit replacement value.
constfactory
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
valueOr(
T other) → T -
Returns the explicit value, or
otherwhen this value is absent.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited