maybeWhen<TResult extends Object?> method
TResult
maybeWhen<TResult extends Object?>({
- TResult android()?,
- TResult ios()?,
- TResult macos()?,
- TResult web()?,
- TResult linux()?,
- TResult windows()?,
- TResult fuchsia()?,
- required TResult orElse(),
A variant of when
that fallback to an orElse
callback.
It is equivalent to doing:
switch (sealedClass) {
case Subclass(:final field):
return ...;
case _:
return orElse();
}
Implementation
@optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
TResult Function()? android,
TResult Function()? ios,
TResult Function()? macos,
TResult Function()? web,
TResult Function()? linux,
TResult Function()? windows,
TResult Function()? fuchsia,
required TResult orElse(),
}) {
final _that = this;
switch (_that) {
case AndroidPlatform() when android != null:
return android();
case IosPlatform() when ios != null:
return ios();
case MacosPlatform() when macos != null:
return macos();
case WebPlatform() when web != null:
return web();
case LinuxPlatform() when linux != null:
return linux();
case WindowsPlatform() when windows != null:
return windows();
case FuchsiaPlatform() when fuchsia != null:
return fuchsia();
case _:
return orElse();
}
}