Sintaxe Básica de Zig: Variáveis, Tipos e Funções — Guia Completo
Este é o segundo artigo da série “Zig para Iniciantes”. Se você ainda não leu o primeiro, comece por Zig para Iniciantes: Primeiros Passos. Neste guia, vamos …
Quer aprender Zig do zero em português? Comece instalando a linguagem, execute um programa pequeno e avance nesta ordem: sintaxe e tipos → funções e controle de fluxo → erros → memória e allocators → testes e build system → projeto prático. Esta página organiza os tutoriais do ZigLang Brasil em uma trilha única, para você não precisar adivinhar qual assunto estudar depois.
Zig é uma linguagem de programação de sistemas: oferece controle direto sobre memória, gera código nativo, não depende de garbage collector e tem interoperabilidade forte com C. Isso torna o aprendizado especialmente útil para quem se interessa por ferramentas de linha de comando, infraestrutura, embarcados, jogos, bancos de dados e software de alta performance.
Caminho rápido: instale o Zig com o guia para Linux, macOS e Windows, faça o tutorial de primeiros passos e continue pela sintaxe básica de Zig.
| Etapa | O que você aprende | Tutorial recomendado |
|---|---|---|
| 1. Preparar o ambiente | instalação, versão e editor | Como instalar Zig |
| 2. Executar o primeiro programa | zig run, zig init, const, var e fluxo básico | Primeiros passos em Zig |
| 3. Dominar a sintaxe | tipos, arrays, slices, funções e escopo | Sintaxe básica de Zig |
| 4. Tratar falhas | error unions, try, catch, defer e errdefer | Tratamento de erros em Zig |
| 5. Entender memória | ponteiros, slices, ownership por convenção e allocators | Gerenciamento de memória em Zig |
| 6. Organizar o projeto | build.zig, dependências, testes e targets | Zig Build System |
| 7. Validar o código | testes unitários, casos de erro e execução | Testes em Zig |
| 8. Criar algo real | CLI, servidor, WebAssembly ou integração com C | Projetos para praticar |
Não é obrigatório concluir cada artigo de uma vez. O melhor resultado vem de alternar leitura e prática: copie um exemplo, execute, altere um valor, provoque um erro e leia a mensagem do compilador.
Antes de estudar a sintaxe, confirme que o compilador está acessível:
zig version
Se o comando não existir, siga o guia completo de instalação do Zig. Prefira uma versão estável recente. Zig ainda é pré-1.0, então exemplos antigos encontrados na internet podem usar APIs que já mudaram.
Depois da instalação, crie uma pasta de estudo separada. Assim você pode testar exemplos sem misturar arquivos de projetos reais:
mkdir estudos-zig
cd estudos-zig
zig init
zig build run
O zig init cria a estrutura inicial do projeto, incluindo build.zig, build.zig.zon e arquivos em src/. Você não precisa entender o build system inteiro no primeiro dia; basta saber que zig build run compila e executa o projeto.
Para experimentar sem criar um projeto completo, salve este código como ola.zig:
const std = @import("std");
pub fn main() void {
std.debug.print("Olá, Zig!\n", .{});
}
Execute com:
zig run ola.zig
Esse exemplo já apresenta três elementos importantes:
@import("std") disponibiliza a biblioteca padrão;pub fn main() define o ponto de entrada do programa;std.debug.print escreve uma mensagem durante o desenvolvimento.O tutorial de Zig para iniciantes: primeiros passos explica esse fluxo em detalhes e introduz const, var, tipos básicos, if, switch, while e for com exercícios.
Depois de executar o primeiro programa, concentre-se nestes conceitos:
const por padrão e var somente quando o valor precisa mudar.if, switch, for e while.?T para representar um valor que pode não existir.!T para representar sucesso ou falha sem exceções escondidas.A continuação natural é o guia de sintaxe básica: variáveis, tipos e funções. Não tente memorizar todos os tipos de uma vez. Aprenda a consultar a documentação e deixe o compilador mostrar onde existe uma incompatibilidade.
Quem vem de JavaScript, Python, Java, C# ou Go costuma encontrar a maior mudança nesta etapa. Em Zig, alocação e liberação de recursos são explícitas. Isso aumenta o controle, mas exige que o contrato de cada função esteja claro.
Estude primeiro o tratamento de erros em Zig. Os recursos try, catch, defer e errdefer aparecem em praticamente todo programa real. Depois, avance para gerenciamento de memória e allocators.
Uma pergunta útil ao ler qualquer função é: quem é responsável por liberar o valor retornado? Em Zig, essa responsabilidade costuma ser expressa pelo tipo, pela assinatura e pela documentação, não por um coletor automático.
Não otimize cedo. Durante o aprendizado, use ferramentas de debug, escreva testes e prefira código simples. A meta inicial é compreender a duração dos dados e liberar recursos corretamente.
Quando seus exemplos passarem de um arquivo, aprenda a separar módulos e automatizar compilação. O guia do Zig Build System mostra como configurar executáveis, bibliotecas, opções de otimização e cross-compilation.
Em seguida, pratique com o tutorial de testes em Zig. Um teste mínimo pode viver no mesmo arquivo do código:
const std = @import("std");
fn somar(a: i32, b: i32) i32 {
return a + b;
}
test "soma dois inteiros" {
try std.testing.expectEqual(@as(i32, 5), somar(2, 3));
}
Execute testes isolados com zig test arquivo.zig ou use zig build test em um projeto configurado. Testar cedo ajuda a aprender a linguagem porque você pode explorar casos pequenos sem depender de uma aplicação inteira.
Escolha um projeto que caiba em poucos dias. Um projeto pequeno concluído ensina mais que uma aplicação ambiciosa abandonada.
Pratique argumentos, parsing de números, switch e tratamento de divisão por zero. Comece com valores fixos e depois leia os operandos da linha de comando.
Leia um arquivo, divida o conteúdo em tokens e conte ocorrências. Esse exercício apresenta arquivos, slices, iteradores, mapas e allocators em um contexto concreto.
Percorra um diretório e agrupe arquivos por extensão. Adicione um modo de simulação antes de renomear ou mover qualquer item.
Depois de dominar erros e memória, faça uma requisição e processe uma resposta JSON. Use o tutorial de HTTP client em Zig como referência e mantenha o primeiro exemplo pequeno.
Se seu interesse é navegador ou edge computing, continue pelo guia de Zig e WebAssembly. Comece exportando uma função matemática simples antes de integrar DOM ou JavaScript.
Quem já conhece C pode seguir o guia de Zig para programadores C. A interoperabilidade é uma das vantagens mais práticas da linguagem e permite adotar Zig de forma gradual.
Como a linguagem ainda evolui, uma assinatura da biblioteca padrão pode ter mudado. Confira a versão mencionada no tutorial e compare com zig version.
var sem necessidadeO compilador exige que variáveis realmente sejam mutáveis. Se o valor não muda, use const. Essa regra torna a intenção do código mais clara.
Entenda arrays, slices e duração de dados antes de criar abstrações complexas com ponteiros. Muitos problemas ficam mais simples quando o tipo usado representa corretamente os limites do buffer.
Leia a primeira mensagem relevante, localize arquivo e linha e reduza o exemplo. Tentar corrigir todos os erros ao mesmo tempo costuma gerar mais confusão.
Digitar e modificar o código é parte do aprendizado. Para cada exemplo, tente pelo menos uma alteração: troque um tipo, provoque uma falha, acrescente um teste ou imprima um valor intermediário.
| Semana | Foco | Entrega prática |
|---|---|---|
| 1 | instalação, const, var, tipos e fluxo | três programas de arquivo único |
| 2 | funções, arrays, slices, opcionais e erros | calculadora ou parser simples |
| 3 | memória, allocators, arquivos e testes | contador de palavras testado |
| 4 | build.zig, módulos e projeto final | CLI organizada em mais de um arquivo |
Adapte o ritmo à sua experiência. Quem já trabalha com C pode avançar mais rápido em ponteiros, mas ainda precisa aprender os contratos e as convenções próprias de Zig. Quem vem de linguagens de alto nível deve reservar mais tempo para memória e tipos.
Você está pronto para conteúdo intermediário quando consegue:
zig init e zig build run;const e var;defer ou documentar quem fará isso;Depois disso, explore comptime em Zig, servidores HTTP, WebAssembly, sistemas embarcados ou interoperabilidade com C conforme seu objetivo.
Comece por instalação e primeiro programa. Depois estude sintaxe, tipos, funções e controle de fluxo. Avance para tratamento de erros, memória, allocators, testes e build system. Termine com um projeto pequeno que reúna esses conceitos.
Não. C ajuda a reconhecer conceitos de baixo nível, mas você pode aprender Zig diretamente. Se nunca trabalhou com memória manual, avance devagar na etapa de ponteiros e allocators e execute todos os exemplos.
Com 30 a 60 minutos de prática diária, uma ou duas semanas podem ser suficientes para sintaxe e fluxo básico. Escrever programas confiáveis com memória explícita, integração C e APIs de sistema exige mais tempo e projetos reais.
Pode ser, principalmente para quem quer entender programação de sistemas. A curva inicial é mais exigente que a de linguagens com garbage collector, então testes pequenos, exercícios e leitura cuidadosa das mensagens do compilador são essenciais.
Use uma versão estável recente e confirme com zig version. Ao seguir um tutorial, observe a data de revisão. Antes da versão 1.0, mudanças na biblioteca padrão são esperadas.
Escolha conforme seu objetivo: comptime para metaprogramação, HTTP para backend, WebAssembly para web ou Zig para programadores C para integração e migração.
Se ainda não instalou a linguagem, abra o guia de instalação do Zig. Se o comando zig version já funciona, vá direto para Zig para iniciantes: primeiros passos e execute o primeiro exemplo.
O objetivo não é apenas ler sobre Zig. Ao final de cada etapa, deixe um programa funcionando, um teste passando e uma dúvida concreta resolvida. Essa sequência transforma documentação dispersa em habilidade prática.
Este é o segundo artigo da série “Zig para Iniciantes”. Se você ainda não leu o primeiro, comece por Zig para Iniciantes: Primeiros Passos. Neste guia, vamos …
Quer aprender Zig do zero mas não sabe por onde começar? Você está no lugar certo. Este é o primeiro artigo da série “Zig para Iniciantes”, projetada para …