Acceso null-aware
Parte de la sección Fundamentos del Journey de Dart de Coddy — lección 29 de 94.
El operador de acceso consciente de null (?.) accede de manera segura a propiedades en objetos potencialmente nulos, previniendo errores en tiempo de ejecución.
void main() {
String? name = 'Dart';
int? length = name?.length;
print('Name: $name');
print('Length: $length');
}Con valores nulos, devuelve null en lugar de fallar:
void main() {
String? name = null;
int? length = name?.length;
print('Name: $name');
print('Length: $length');
}Desafío
FácilCrea un programa en Dart que demuestre el operador de acceso consciente de nulos (?.) con un personaje de juego:
- Crea una variable String nullable llamada
playerNamey configúrala a null - Crea una variable int nullable llamada
playerScorey configúrala a 100 - Usa el operador de acceso consciente de nulos (
?.) para obtener la longitud de playerName y almacenarla en una variable llamadanameLength - Imprime el siguiente mensaje:
Player name length: X(donde X es el valor de nameLength) - Actualiza
playerNamea "Champion" - Usa nuevamente el operador de acceso consciente de nulos para obtener la longitud actualizada y almacenarla en
nameLength - Imprime el mensaje actualizado:
Player name length: X(donde X es el nuevo valor) - Imprime la puntuación del jugador con este formato:
Player score: 100
Hoja de referencia
El operador de acceso null-aware (?.) accede de manera segura a propiedades en objetos potencialmente null, previniendo errores en tiempo de ejecución.
Cuando el objeto no es null, devuelve el valor de la propiedad:
String? name = 'Dart';
int? length = name?.length; // Devuelve 4Cuando el objeto es null, devuelve null en lugar de fallar:
String? name = null;
int? length = name?.length; // Devuelve nullPruébalo tú mismo
void main() {
// Declara tus variables nullable aquí
String? playerName = _;
int? playerScore = _;
// Obtén la longitud de playerName usando el operador ?.
int? nameLength = playerName_.length;
// Imprime la longitud inicial del nombre
print("Player name length: ${nameLength}");
// Actualiza playerName
playerName = _;
// Obtén la longitud actualizada usando el operador ?.
nameLength = playerName_.length;
// Imprime la longitud actualizada del nombre
print("Player name length: ${nameLength}");
// Imprime la puntuación del jugador
print("Player score: ${playerScore}");
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 2
Operadores de ComparaciónAND LógicoOR LógicoNOT LógicoOperadores de Prueba de TipoResumen - Realizando Comparaciones7Trabajando con Cadenas
Concatenación de CadenasInterpolación de CadenasCadenas MultilíneaPropiedades de CadenasMétodos Básicos de Cadenas10Colecciones - Conceptos básicos de Mapas
¿Qué son los Mapas?Creando un MapaAccediendo a Valores por ClavePares Clave-ValorObteniendo el Tamaño del MapaObteniendo las ClavesObteniendo los ValoresVerificando si una Clave Existe13Null Safety en Profundidad
Comprendiendo NullTipos NullableTipos No NullableOperador de Afirmación NullInicialización TardíaResumen - Manejo Seguro de Null16Desafíos Fundamentales
Desafío: Lista de cálculosDesafío: Suma de númerosDesafío: Encontrar producto2Variables y Tipos de Datos Básicos
¿Qué son las Variables?CadenasEnteros (int)Dobles (double)Booleanos (bool)Inferencia de Tipos con 'var'Variables FinalesVariables ConstantesConvenciones de NombresSeguridad Básica ante NullResumen - Declarando Variables8Flujo de control - Bucles
El bucle 'for'El bucle 'while'El bucle 'do-while'Usando 'break' en buclesUsando 'continue' en buclesResumen - Código repetitivo3Operadores Parte 1
Operadores AritméticosDivisión EnteraOperador MóduloIncremento y DecrementoAtajos de AsignaciónResumen - Cálculos Simples6Flujo de Control - Toma de Decisiones
La sentencia 'if'La sentencia 'else'La sentencia 'else if'Resumen - Decisiones SimplesSentencias 'if' AnidadasLa sentencia 'switch'9Colecciones - Listas Básicas
¿Qué son las listas?Creando una listaAccediendo por índiceObteniendo la longitud de la listaAgregando elementosEliminando elementosComprobando si una lista está vacíaIterando sobre una lista12Funciones Avanzadas
Parámetros Posicionales OpcionalesParámetros NombradosParámetros Nombrados RequeridosValores de Parámetro por DefectoResumen - Parámetros de Función15Proyecto: Calculadora Simple
ConfigurandoDeclarando Número