Lección 4 / 20

Seguridad frente a null (? y !)

En esta lección trabajarás con variables que pueden no tener valor, sin que el programa reviente.

En Dart, una variable normal no puede valer null. Para permitirlo hay que marcar el tipo con una interrogación: String? nickname;. El operador ?? devuelve el valor de la derecha cuando el de la izquierda es nulo.

El código de ejemplo imprime primero el texto por defecto, porque el apodo aún no tiene valor, y después el apodo real una vez asignado.

Esto es lo que se llama null safety, y llegó a Dart en 2021. La idea es que el error de «llamar a un método sobre algo que era nulo» —probablemente el fallo más común de la historia de la programación— pase de descubrirse cuando el usuario abre la aplicación a descubrirse mientras escribes el código.

Existe también el operador !, que le dice al compilador «confía en mí, aquí seguro que no es nulo». Es tentador usarlo para callar los avisos, pero si te equivocas el programa falla en tiempo de ejecución, exactamente el problema que null safety venía a eliminar. Salvo casos muy justificados, es mejor ?? o comprobarlo con un if.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Dart directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

Espacio publicitario (banner)
Espacio publicitario (en el artículo)