Flutter: Expresiones condicionales ?? y ?

Dart tiene 2 expresiones que permiten simplificar el uso del if-else.

El primero es el operador ? y funciona de la siguiente forma: condicion ? resultado1 : resultado2. Si la condición es true evalúa el resultado1 si la condición es false evalúa el resultado2. Por ejemplo si tenemos el siguiente código usando if-else:

var edad = 17;

if (edad >= 18) {
	print('Es mayor de edad');
} else {
	print('Es menor de edad');
}

Si utilizamos el operador ? quedaría de la siguiente forma:

edad >=18 ? print('Es mayor de edad') : print('Es menor de edad');  

También podemos asignar el resultado a alguna variable:

String resultado = edad >=18 ? 'Es mayor de edad' : 'Es menor de edad';  

El segundo operador es el ?? y funciona de la siguiente forma: resultado1 ?? resultado2. Si resultado1 no es nulo regresa su valor de lo contrario regresa el resultado2. Por ejemplo si tenemos el siguiente código usando if-else:

String? nombre = 'Yayo';
if (nombre == null) {
	print('El nombre es nulo');
} else {
	print(nombre);
}  

Si utilizamos el operador ?? quedaría de la siguiente forma:

String? nombre = 'Yayo';

print( nombre ?? 'El nombre es nulo ');  

En el fragmento de código anterior imprime en consola Yayo porque la variable nombre no es nula.

Puedes correr el código en DartPad y ver el funcionamiento:

Videotutorial en YouTube

Recuerda que también puedes ver el video tutorial de este curso en youtube:

Comparte este artículo