Mapa del lenguaje Lucia

Objetivo de aprendizaje

  • Entender el mapa completo de funcionalidades de Lucia y como conectarlas.

Sintaxis clave

let x: int = 10;
const title: string = "Lucia";
if (x > 0) { print(title); }

Ejemplos

  • Flujo de control: if, else if, else, switch/case/default, while, for, do/while, for...in.
  • Declaraciones: let, const.
  • Tipos: int, float, bool, string, date, datetime, void, any.
  • Colecciones: list<T>, dict<K, V>, literales e indexacion.
  • POO: class, extends, constructor, propiedades, metodos, this.
  • Modulos: import "./module.lucia";.
  • Expresiones: operadores, ternario y null coalescing ??.
  • Strings: interpolacion con ${expr}.

Caracteristicas que se suelen omitir

  • En metodos de clase puedes llamar metodos hermanos con o sin this:
func toString(): string {
	return obtenerNombreValor() + " " + obtenerNombrePalo();
}
  • El acceso a campos tambien puede ser implicito cuando no hay sombreado local.
  • Las colecciones vacias adoptan tipo por contexto:
let jugadores: list<Jugador> = [];
jugadores = [];

let puntajes: dict<string, int> = {};
puntajes = {};
  • Es valida la asignacion por indice:
this.mazo[i] = this.mazo[j];
this.mazo[j] = temp;
  • Para tamano usa len(x), no x.length().

Errores comunes

  • Intentar mezclar demasiados conceptos sin dominar tipos y declaraciones.
  • Ignorar diagnosticos mientras se aprende sintaxis nueva.

Ruta sugerida

  • Inicia con examples/00_features.lucia para base del lenguaje.
  • Continua con examples/10_inheritance_const.lucia para herencia y campos const.
  • Luego arma un mini proyecto de 2 archivos con import, clase modelo y flujo de ejecucion.

Practica sugerida

  • Construye una mini app con imports, clases, listas, condicionales e interpolacion.

Relacionados

  • syntax-control-flow
  • types-and-collections
  • oop-and-modules