Visao geral da linguagem Lucia
Objetivo de aprendizagem
- Entender o mapa completo de recursos do Lucia e onde cada conceito se encaixa.
Sintaxe chave
let x: int = 10;
const title: string = "Lucia";
if (x > 0) { print(title); }
Exemplos
- Fluxo de controle:
if, else if, else, switch/case/default, while, for, do/while, for...in.
- Declaracoes:
let, const.
- Tipos:
int, float, bool, string, date, datetime, void, any.
- Colecoes:
list<T>, dict<K, V>, literais, indexacao.
- OOP:
class, extends, constructor, propriedades, metodos, this.
- Modulos:
import "./module.lucia";.
- Expressoes: aritmeticas, logicas, comparacao, atribuicao, ternaria, coalescencia nula
??.
- Strings: interpolacao com
${expr}.
O que geralmente passa despercebido
- Em metodos de classe, metodos pares podem ser chamados com ou sem
this:
func toString(): string {
return obtenerNombreValor() + " " + obtenerNombrePalo();
}
- Acesso a campos pode usar
this.campo ou nome implicito quando nao ha sombra local.
- Colecoes vazias podem adotar tipo do contexto:
let players: list<Jugador> = [];
players = [];
let scores: dict<string, int> = {};
scores = {};
- Atribuicao indexada e valida para list/dict:
this.mazo[i] = this.mazo[j];
this.mazo[j] = temp;
- Use
len(listOrDict) para tamanho. Nao use .length().
Erros comuns
- Misturar conceitos antes de dominar declaracoes e tipos.
- Ignorar diagnosticos ao aprender nova sintaxe.
Trilha de aprendizado sugerida
- Comece com
examples/00_features.lucia para cobrir declaracoes, colecoes, loops e classes.
- Continue com
examples/10_inheritance_const.lucia para heranca e campos const.
- Depois monte um mini projeto de dois arquivos com
import, uma classe de modelo e um script runner.
Pratica sugerida
- Monte um mini app com imports, classes, listas, condicionais e interpolacao.
Relacionados
- syntax-control-flow
- types-and-collections
- oop-and-modules