unless
Aplica un callback cuando el predicado no se cumple; en caso contrario devuelve el valor sin tocar.
Lección
unless es when con la
condición invertida: unless(predicate, callback, value) ejecuta
callback(value) cuando predicate(value) es
false, y devuelve value intacto cuando el
predicado se cumple. Se lee muy bien para «pon un valor por defecto salvo
que esta condición ya se cumpla»: validación, relleno de datos que faltan,
normalización de casos límite.
Como en when, en Dart ambas ramas deben devolver el mismo tipo
T (no hay tipos de retorno unión), y no existe forma
encadenable — es una función data-first normal y corriente.
Demo 1 · Fundamentos
Demo 2 · Rellenar datos que faltan
Pruébalo tú
Ejercicio: usa unless para poner 'general' en
cualquier etiqueta que no se haya establecido.