Fila de Prioridade em Zig: Binary Heap Min-Heap
Para implementar uma fila de prioridade em Zig, use um binary heap sobre um ArrayList. Em uma min-heap, o menor elemento fica na raiz; cada pai é menor ou igual aos …
Artigos, análises e novidades sobre a linguagem Zig (Zig lang) em português. Acompanhe tendências, comparações com outras linguagens, dicas de carreira e tudo sobre o ecossistema ZigLang para desenvolvedores brasileiros.
Para implementar uma fila de prioridade em Zig, use um binary heap sobre um ArrayList. Em uma min-heap, o menor elemento fica na raiz; cada pai é menor ou igual aos …
Para implementar um cache LRU em Zig, use um HashMap para encontrar entradas e uma lista duplamente encadeada para registrar a ordem de uso. O item acessado mais …
Para construir um ring buffer SPSC em Zig, restrinja o contrato a um produtor e um consumidor, use um array circular de capacidade fixa e publique progresso com índices …
Para implementar um protocolo binário em Zig, não serialize structs diretamente. Defina um formato de bytes explícito, escolha uma endianness fixa, inclua o comprimento …
Para escolher entre mutex e atomic em Zig, use esta regra: se você protege uma invariável com vários campos ou vários passos, escolha std.Thread.Mutex; se atualiza um …
Uma fila limitada e thread-safe é uma das formas mais simples de tornar concorrência previsível em Zig. Produtores colocam tarefas na fila, workers retiram essas tarefas, …
Se o seu programa parou de compilar com um erro em std.io.getStdOut, std.io.getStdIn ou bufferedWriter, você encontrou o Writergate: a reescrita do subsistema de I/O da …
Para enviar um arquivo por um socket em Zig com menos cópias, use sendfile quando o target e o tipo de conexão permitirem, mas trate a operação como streaming: mantenha …
Para fazer fuzz testing em Zig, escreva um test que chama std.testing.fuzz com uma função testOne recebendo []const u8, transforme esses bytes em uma chamada real do seu …
Para executar um comando externo em Zig, use std.process.Child.run quando o trabalho for curto e a saída puder ser capturada em memória. Passe cada argumento …
Para mapear um arquivo em memória com Zig, abra o arquivo, obtenha e valide seu tamanho, crie o mapeamento com std.posix.mmap, use o slice retornado somente enquanto o …
Para reduzir a latência de mensagens TCP pequenas em Zig, você pode habilitar TCP_NODELAY no socket com std.posix.setsockopt, desativando o algoritmo de Nagle naquela …