Tabla de Contenido
Introducción
En todos los lenguajes existen palabras reservadas o palabras clave que son utilizadas para poder manejar funciones específicas en el lenguaje. No se pueden usar como identificadores en clases, funciones, variables, etc. Son palabras que el lenguaje necesita para que su estructura funcione correctamente.
Dart tiene sus propias palabras clave y podemos dividirlas en cuatro categorías.
Palabras clave reservadas
Son las palabras que no pueden definitivamente ser identificadores. Las listaremos en orden alfabético.
if
Palabra clave que sirve para realizar condiciones donde esperamos un resultado booleano (true o false).
if (5 > 4) {
// sentencia
}
else
Esta palabra clave es opcional y se utiliza en los condicionales cuando la validación if no es verdadera.
if (4 > 5) {
// sentencia, no ingresa
} else {
// ingresa al else ya que no cumple el if
}
enum
La palabra clave enum también conocida como enumeraciones son una clase especial usada para representar valores constantes.
enum Month {
january, february, march, april
}
in
La palabra in se utiliza en los bucle for-in, que son recomendados cuando no es necesario tener el índice de un iterable (List o Set).
class Person {
String name = "";
int age = 0;
void printAge() {
print('$name tiene $age años de edad.');
}
}
void main() {
// Sin notación de cascada
Person person1 = Person();
person1.name = 'Juan';
person1.age = 30;
// Con notación de cascada
Person person2 = Person()
..name = 'Pepito'
..age = 33;
List<Person> persons = [person1, person2];
for (final person in persons) {
person.printAge();
}
}
assert
Los asserts se usan para validar si una condición es verdadera o falsa, si es falsa impide seguir con su flujo y muestra una excepción con un mensaje de error. Es una función y recibe en la primera posición la condición y en la segunda podemos agregar un mensaje opcional que se muestre al generar el error. assert(<condition>, <optionalMessage>);
int num = 4;
assert(num > 5); // muestra mensaje de error Uncaught Error: Assertion failed
// muestra mensaje de error Uncaught Error: Assertion failed número no válido
assert(num > 5, 'número no válido');
super
Esta palabra clave se usa en temas de herencia para hacer referencia a la superclase o clase padre.
class Animal {
void walk() {
print('animal caminando');
}
}
class Dog extends Animal {
@override
void walk() {
super.walk(); // se llama la función walk de la superclase
print('Perro');
}
}
void main() {
Dog dog = Dog();
dog.walk();
}
extends
Se usa en las subclases o clases hijas para extender los atributos y funciones de la clase padre. Al usar extends se crea una subclase.
// como vimos en el ejemplo anterior
class Dog extends Animal { }
is
Como ya vimos antes, la palabra is en Dart se utiliza para validar si un objeto es de determinado tipo de dato.
if (employee is Person) { }
case
La palabra clave case se usa para los casos que se validan dentro de una sentencia switch, que veremos a continuación.
default
La palabra clave default se usa en los switch para los valores que no coinciden con ningún caso.
switch
Es una sentencia que evalúa una expresión de valor contra una serie de casos. Empieza evaluando cada case y cuando coincide con el valor ingresa y ejecuta la sentencia que haya dentro, sino hay coincidencia va al default.
var color = 'RED';
switch (command) {
case 'BLUE':
print('BLUE');
case 'GREEN':
print('GREEN');
case 'RED':
print('RED');
default:
print('WHITE');
}
when
Palabra clave que se usa luego de los case para agregar más comparaciones en los casos.
var value = 3;
var caseValue = 6;
switch (value) {
case 1:
print("Caso 1");
break;
case 2:
print("Caso 2");
break;
case 3 when (caseValue > 5):
print("Caso 3 con valor mayor a 5");
break;
default:
print("Caso por defecto");
}
La palabra clave this se refiere a la instancia actual de una clase.
class Point {
double x = 0;
double y = 0;
Point(this.x, this.y);
}
for
La palabra clave for se usa para iterar las listas en Dart.
for (int i = 0; i < 5; i++) {
// sentencia
}
break
La palabra clave break se usa dentro de los bucles para detenerlo y salir de él.
for (int i = 0; i < 5; i++) {
if (i > 3) break;
print(i);
}
continue
La palabra clave continue al igual que break se usa en los bucles pero para seguir con la siguiente iteración y no ejecutar más dentro del bucle.
for (int i = 1; i <= 5; i++) {
if (i == 3) {
print("no imprimir el valor 3");
continue;
}
print("Valor: $i");
}
throw
La palabra clave throw se utiliza para lanzar excepciones.
throw Exception('Error');
false — true
Son los valores que tiene el tipo de dato bool en Dart.
bool isDark = false;
bool isActive = true;
new
Es una palabra clave opcional para instanciar una clase.
var class1 = new Person();
var class2 = Person(); // esta es la forma recomendada por Dart
try
Se usa para la construcción del bloque try-catch en las excepciones.
catch
La palabra clave catch se utiliza para evitar que las excepciones se propaguen. Podemos atrapar la excepción y manejarla.
try {
execute();
} on Exception {
otherExecute();
}
finally
Se usa en las excepciones en los bloques try-catch y es un código que se ejecuta siempre, entre o no a un catch.
try {
executeTry();
} catch (e) {
print('Error: $e');
} finally {
executeFinally();
}
final(variable)
Una variable final solo puede establecerse una vez, no se puede modificar su valor.
final dog = 'Coquito';
null
La palabra clave null se utiliza para las variables que no se inicializan es un valor por defecto.
int? lineCount;
int lineCount2;
if (lineCount2 > 2) {}
class
La palabra clave class es la que se usa para crear las clases.
class Person {}
var
Es la palabra clave utilizada para la creación de variables sin necesidad de especificar un tipo de dato.
var color = 'GREEN';
void
Palabra clave que se usa para indicar que una función no va a retornar ningún valor.
void main {}
rethrow
Palabra clave para manejar parcialmente una excepción, mientras se permite su propagación. Permite que una excepción capturada sea relanzada al nivel superior, sin perder la traza.
void misbehave() {
try {
dynamic foo = true;
print(foo++);
} catch (e) {
print('misbehave() partially handled ${e.runtimeType}.');
rethrow; // se relanza al try dentro del main
}
}
void main() {
try {
misbehave();
} catch (e) {
print('main() finished handling ${e.runtimeType}.');
}
}
while
Palabra clave que se usa para crear un bucle mientras la condición sea verdadera.
int count = 0;
while (count < 5) {
print('Contador $count');
count++;
}
do-while
La palabra clave do se utiliza en el bucle do-while, que ejecuta una sentencia mientras se cumpla una condición.
int count = 0;
do {
print('Contador $count');
count++;
} while (count < 5);
return
La palabra clave return se utiliza para devolver un valor de una función y para terminar su ejecución.
int sum(int a, int b) {
return a + b;
}
with
La palabra clave with se utiliza en el contexto de las clases y la herencia para mezclar o combinar las funcionalidades de múltiples clases en una sola clase. Este concepto se conoce como mixin, y Dart proporciona la palabra clave with para aplicar mixins en una clase.
class Logger {
void log(String message) {
print('Log: $message');
}
}
mixin class LogRegister implements Logger {
@override
void log(String message) {
print('Registrar: $message');
}
}
class MyClass with LogRegister {
// Sentencias de la clase
}
void main() {
var myClass = MyClass();
myClass.log('logger');
}
Conclusión
Conocimos las palabras reservadas que tiene Dart, las que no se pueden usar como identificadores.
¡Gracias por leer!
