nullable

Ejecuta un bloque en un ámbito raise sin información: cualquier cortocircuito hace que todo el bloque se evalúe a null. La alternativa nullable-first a un tipo Option.

A? nullable<A>(A Function(SingletonRaise r) block) Future<A?> nullableAsync<A>(FutureOr<A> Function(SingletonRaise r) block) on SingletonRaise: A bind<A>(A? value) · ensure(bool) · ensureNotNull(A?) · none()

Lección

Cuando la única información de fallo que necesitas es la ausencia, un Either es excesivo — Dart ya tiene un canal dedicado a la ausencia: T?. nullable es el gemelo sin información del constructor either (el port de nullable { } de Arrow): el r.bind(value) del ámbito desenvuelve un valor nullable y, si es null, todo el bloque devuelve null.

Frente a encadenar ?. y ??, la ganancia es que cualquier paso puede abandonar — una búsqueda, un parseo, una condición vía r.ensure(cond) — sin anidamiento, y los valores intermedios siguen promovidos y no nulos. Por eso FxDart no incluye ningún tipo Option/Maybe: T? más este constructor lo cubren, sin ninguna envoltura.

Demo 1 · bind sobre tryParse

Demo 2 · búsquedas profundas sin escaleras de ?.

Pruébalo tú

Ejercicio: lastSeen['lee'] existe pero contiene null, y 'park' falta por completo — r.bind trata ambos casos como ausencia. Arregla describe para que los dos impriman null.

Relacionado: constructor either — cuando el fallo necesita un motivo · EithergetOrNull() hace de puente de vuelta a los nullables · nonNulls — elimina los nulls de un pipeline · errores tipados — guía completa