Guia 2 de 36
Primeiros Passos
Instale o conjunto de ferramentas, crie um projeto, desenvolva com acompanhamento automático e escolha um destino de compilação.
Nesta página
Zolo mantém o código-fonte acessível e deixa o projeto escolher onde ele roda. O mesmo programa pode executar na VM embarcada, integrar-se a hosts Lua 5.1, virar um binário nativo com LLVM ou Cranelift, ou ser entregue como WebAssembly.
Este guia vai de uma pasta vazia até um projeto real e o ciclo cotidiano de desenvolvimento.
Zolo ainda é pre-1.0. A linguagem já pode ser usada, mas as APIs continuam evoluindo. Mantenha a CLI e a documentação da mesma versão juntas.
Escolha por onde começar¶
- Explorar sem instalar: abra o Playground e execute um exemplo no navegador.
- Desenvolver localmente: instale a toolchain completa e crie um projeto pela CLI.
- Aprender com programas completos: navegue pelo Zolo por Exemplos.
Instale o conjunto de ferramentas¶
O caminho recomendado é o pacote pré-compilado para o seu sistema. Ele inclui a CLI zolo, o servidor de linguagem, o debugger e o runtime:
Confirme a instalação:
zolo version
zolo doctorCompilar a partir do código-fonte continua disponível para quem contribui com o compilador:
cargo build --releaseO binário estará em target/release/zolo (target/release/zolo.exe no Windows).
Rode seu primeiro programa Zolo¶
Crie hello.zolo:
const base = 2
/// Multiplica dois inteiros e retorna o resultado.
fn multiply(a: int, b: int) -> int {
return a * b
}
let result = base |> multiply(2)
print("Olá do Zolo!")
print("2 * 2 = {result}")Execute o arquivo diretamente — passar um .zolo é um atalho para zolo run:
zolo hello.zoloSaída esperada:
Olá do Zolo!
2 * 2 = 4Agora peça à mesma toolchain para verificar e formatar o código:
zolo check hello.zolo
zolo fmt hello.zoloCrie um projeto¶
Use um template quando quiser criar uma nova pasta:
zolo new hello primeiro-zolo
cd primeiro-zolo
zolo .Dentro de uma pasta existente, use zolo init meu-projeto. Os dois caminhos criam um zolo.toml, que registra o ponto de entrada e as configurações do compilador, formatter, testes e build.
zolo run, zolo build e zolo . descobrem automaticamente o ponto de entrada pelo zolo.toml, por src/main.zolo ou por main.zolo.
O ciclo cotidiano¶
| Objetivo | Comando |
|---|---|
| Executar novamente ao salvar | zolo run --watch |
| Verificar tipos enquanto edita | zolo check --watch |
| Reexecutar testes ao salvar | zolo test main.zolo --watch |
| Formatar um arquivo | zolo fmt main.zolo |
| Encontrar e corrigir problemas de lint | zolo lint . --fix |
| Abrir o shell interativo | zolo repl |
| Usar hot reload preservando o estado | zolo dev main.zolo |
Adicione um teste ao lado da função exercitada:
@test
fn multiply_works() {
assert_eq(multiply(3, 4), 12)
}Depois execute:
zolo test hello.zoloEscolha o destino¶
O código-fonte permanece o mesmo; o comando escolhe a saída:
| Destino | Comando |
|---|---|
| VM embarcada | zolo run hello.zolo |
| Código-fonte Lua 5.1 | zolo compile hello.zolo |
| Bundle Lua único | zolo bundle hello.zolo -o hello.lua |
| Binário nativo com LLVM | zolo build hello.zolo |
| Binário nativo com Cranelift | zolo build hello.zolo --emit native |
| WebAssembly para o navegador | zolo build hello.zolo --emit wasm --host browser |
Use zolo help para ver a superfície completa da CLI: cobertura, benchmarks, profiling, pacotes, documentação, templates, geração de código e completions do shell.
Forma do projeto¶
Um projeto pequeno começa com dois arquivos e cresce apenas quando precisa:
primeiro-zolo/
├── zolo.toml # configuração do projeto e da toolchain
├── main.zolo # ponto de entrada
├── src/ # módulos opcionais
├── tests/ # testes de integração opcionais
└── build.zolo # configuração de build programável e opcionalPara onde seguir¶
- Aprenda o núcleo da linguagem: Variáveis e Tipos, Funções e Pattern Matching.
- Configure editor, formatter e debugger: Ferramentas.
- Construa um serviço: Servidor HTTP.
- Crie para a web com Verniz: Desenvolvimento Web.
DOCS / OPINIÃO
Esta página deixou alguma pergunta?
Conte onde a explicação perdeu você. A documentação também faz parte da experiência da linguagem.