diegoRodicio

View Categories

❓ Traballar con valores nulos

Tempo de lectura estimado: 1 minutos

❓ Que significa null?

null indica que non temos un valor. Non é o mesmo que 0 nin que un texto baleiro (''). Por defecto, unha variable de tipo String non admite null. Para permitilo escribimos String?.

String? telefono; // Aínda non temos teléfono: vale null.
print(telefono);
telefono = '988 000 000'; // Agora contén texto.
print(telefono);

Chamaremos a estes tipos tipos que admiten null (ou tipos anulables). Non os confundas cos parámetros opcionais das funcións.

🛟 Dar unha alternativa con ??

valor ?? alternativa usa a alternativa só se o valor é null.

int? nota = int.tryParse('pendente'); // Non é un número: devolve null.
print(nota ?? 0); // Mostra 0; a variable nota segue sendo null.

Non sempre ten sentido substituír un dato incorrecto por cero. Na lectura por teclado aprenderemos a pedir de novo o dato.

🔗 Acceder con ?.

?. só accede ao membro se hai un valor. Se é null, o resultado tamén é null.

String? nome = null;
print(nome?.toUpperCase()); // null: non se chama a toUpperCase().
print(nome?.toUpperCase() ?? 'Sen nome');

Cando xa saibamos usar if, tamén poderemos comprobar nome != null antes de traballar con el.

⚠️ Afirmar que hai un valor con !

dato! dille a Dart: «aquí estou seguro de que non é nulo». Non crea un valor nin corrixe o dato: se é null, o programa falla. Non o engadas só para quitar un aviso do editor; usa unha comprobación ou unha alternativa cando corresponda.

int? nota = int.tryParse('8');
print(nota! + 1); // Sabemos que o texto '8' se pode converter.
// Se o texto fose 'oito', nota sería null e esta operación fallaría.

📚 Consulta: seguridade fronte a nulos – https://dart.dev/null-safety/understanding-null-safety.