En Dart, la palabra clave is
permite verificar si una variable es de un tipo específico, similar al uso de instanceof
en otros lenguajes como Java. Esto es útil para asegurarse de que una variable cumple con un tipo determinado antes de realizar operaciones específicas de ese tipo.
is
en Dart?
El operador is
verifica si una instancia pertenece a un tipo en particular. Si la variable es del tipo especificado, el operador devuelve true
; de lo contrario, devuelve false
. También se puede usar is!
para verificar si una variable no es de un tipo específico.
Este operador es útil en el contexto de herencia y polimorfismo, donde es importante verificar el tipo exacto de una instancia antes de invocar métodos o propiedades particulares de la clase.
is
en Dart
void main() {
dynamic variable = "Soy un String";
// Verificar si 'variable' es un String
if (variable is String) {
print("La variable es de tipo String");
} else {
print("La variable no es de tipo String");
}
// Verificar si 'variable' no es un int
if (variable is! int) {
print("La variable no es de tipo int");
}
}
En este ejemplo:
variable
es un String
. Como lo es, imprime el mensaje correspondiente.
is!
para comprobar que variable
no es un int
.
class Animal {}
class Perro extends Animal {}
class Gato extends Animal {}
void main() {
Animal miMascota = Perro();
if (miMascota is Perro) {
print("La mascota es un Perro");
} else if (miMascota is Gato) {
print("La mascota es un Gato");
} else {
print("La mascota es de otro tipo");
}
}
En este ejemplo, miMascota
es una instancia de Perro
, y al verificar su tipo con is
, Dart determina que es de tipo Perro
, imprimiendo el mensaje correspondiente.
is
en Dart
1. Seguridad de tipos: Permite verificar el tipo antes de realizar operaciones específicas, evitando errores en tiempo de ejecución.
2. Polimorfismo controlado: Útil en jerarquías de clases para diferenciar comportamientos específicos.
3. Simplicidad y claridad: Hace el código más legible y claro en comparación con otros métodos de verificación.
Para más detalles, consulta la documentación oficial de Dart.
Jorge García
Fullstack developer