Tipos y colecciones
Objetivo de aprendizaje
- Aplicar tipos de Lucia y estructuras de coleccion en codigo real.
Sintaxis clave
let age: int = 20;
let price: float = 12.5;
let name: string = "Ana";
let active: bool = true;
let tags: list<string> = ["a", "b"];
let user: dict<string, any> = {"name": "Ana", "age": 20};
Ejemplos
- Acceso en listas:
tags[0].
- Acceso en diccionarios:
user["name"].
- Valores temporales:
date(...), datetime(...).
Patrones practicos
- Listas y diccionarios vacios con tipo explicito:
let mazo: list<Carta> = [];
let puntajes: dict<string, int> = {};
- Reasignar vacios conserva el tipo de la variable:
mazo = [];
puntajes = {};
- Lectura y escritura por indice:
let temp: Carta = mazo[i];
mazo[i] = mazo[j];
puntajes["ana"] = 10;
- Metodos tipados en colecciones:
mazo.append(Carta("A"));
if (puntajes.contains_key("ana")) {
print(puntajes.get("ana", 0));
}
Notas
- Para tamano de colecciones usa
len(x).
list<T> exige elementos compatibles en asignacion y append.
dict<K, V> valida tipo de llave y de valor.
- Metodos comunes de list:
insert, remove, removeAt, extend, first, last, is_empty, copy, clear.
- Metodos comunes de dict:
items, size, merge, put, remove, is_empty, clear.
Errores comunes
- Asignar tipos incompatibles.
- Usar indices o claves invalidas.
- Llamar metodos no soportados por el tipo receptor (por ejemplo
length() en list).
Practica sugerida
- Modela un registro de estudiante con
dict<string, any> y lista de notas.
Practica extendida
- Crea un mezclador de mazo:
- Define
list<Carta>.
- Usa
for y random(0, n - 1).
- Intercambia elementos con asignacion por indice.
Relacionados
- functions-and-builtins
- methods-and-chaining