Como Trabalhar com Big Integers em Zig
Introdução Tipos numéricos comuns como u64 e i128 têm limites de tamanho. Quando você precisa trabalhar com números que excedem esses limites – como em …
Bem-vindo à nossa coletânea de receitas práticas para Zig Lang. Aqui você encontra soluções prontas e testadas para tarefas comuns do dia a dia na linguagem de programação Zig, todas documentadas em português brasileiro.
Cada receita contém código funcional que você pode copiar, adaptar e usar nos seus projetos. Os exemplos seguem as boas práticas da linguagem Zig e são compatíveis com a versão estável mais recente.
Manipulação de strings, formatação e conversões são tarefas fundamentais em qualquer programa. Estas receitas cobrem as operações mais comuns com strings em Zig.
Operações com o sistema de arquivos são essenciais para qualquer aplicação. Estas receitas mostram como ler, escrever e manipular arquivos e diretórios em Zig.
Zig oferece estruturas de dados eficientes na biblioteca padrão. Estas receitas demonstram como usar e implementar as estruturas mais importantes.
O sistema de alocadores de Zig é uma das suas características mais poderosas. Entenda como usar cada tipo de alocador na prática.
Operações numéricas e matemáticas com segurança e precisão. Estas receitas cobrem desde aritmética básica até números arbitrariamente grandes.
Trabalhe com JSON para comunicação com APIs, configurações e armazenamento de dados estruturados.
Conecte seus projetos Zig a bancos de dados populares com estas receitas práticas.
Vindo de outra linguagem? Estes guias comparam código lado a lado para acelerar seu aprendizado.
Cada receita é autocontida e pode ser usada independentemente. Para executar os exemplos:
.zigzig run arquivo.zigzig build com um arquivo build.zigSe você é iniciante em Zig Lang, comece pelo guia Zig para iniciantes: primeiros passos antes de mergulhar nas receitas. Confira também a instalação do Zig e a referência de erros para complementar seu aprendizado.
Encontrou um erro ou tem uma sugestão de nova receita? Toda contribuição é bem-vinda! Visite nosso repositório e abra uma issue ou pull request.
Introdução Tipos numéricos comuns como u64 e i128 têm limites de tamanho. Quando você precisa trabalhar com números que excedem esses limites – como em …
Introdução Trabalhar com tempo é essencial para logs, medição de performance, timestamps em dados, timeouts e agendamento de tarefas. Zig oferece std.time com funções …
Introdução Em muitas situações, você precisa de uma coleção que cresce e diminui dinamicamente durante a execução do programa. Arrays fixos em Zig têm tamanho definido em …
Introdução O FixedBufferAllocator permite alocar memória a partir de um buffer pré-existente, sem recorrer ao heap. Isso é particularmente útil em sistemas embarcados, …
Introdução O GeneralPurposeAllocator (GPA) é o alocador de uso geral recomendado em Zig para desenvolvimento e depuração. Ele fornece detecção de erros como double-free, …
Introdução Um HashMap (também chamado de dicionário ou mapa) é uma estrutura de dados que associa chaves a valores, permitindo inserção, busca e remoção em tempo O(1) …
Introdução Um Mutex (Mutual Exclusion) é um mecanismo de sincronização que garante que apenas uma thread acesse um recurso compartilhado por vez. Sem sincronização …
Introdução Operações atômicas são instruções de CPU que executam de forma indivisível, sem possibilidade de interrupção por outra thread. Elas permitem sincronização …
Introdução Um thread pool é um padrão que mantém um conjunto fixo de threads reutilizáveis para processar tarefas. Em vez de criar e destruir threads para cada tarefa …
Introdução Timers e sleep são fundamentais para controlar o fluxo temporal de programas: pausar entre operações, implementar polling, criar intervalos periódicos e medir …
Introdução errdefer é uma das features mais elegantes de Zig. Diferente de defer (que executa sempre), errdefer executa apenas quando a função retorna um erro. Isso …
Introdução Zig usa error unions em vez de exceções. Uma função que pode falhar retorna !T (error union), e o chamador deve tratar o erro com try (propagar) ou catch …