Strings são []const u8
Entenda por que as strings de Zig são fatias de bytes.
Strings são []const u8 é uma aula grátis de Zig Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Zig Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Zig Academy inclui 4 aulas no total.
Não existe tipo string
O Zig não tem um tipo string dedicado. Um trecho de texto é simplesmente uma fatia de bytes, então você reutiliza as mesmas ferramentas que já conhece para vetores. 📦
São apenas bytes
Uma string do Zig é do tipo []const u8: uma janela somente leitura sobre uma sequência de bytes de 8 bits. Cada byte contém um número de 0 a 255.
const greeting: []const u8 = "hello";Por que const
Literais de string ficam em memória somente leitura, portanto seu tipo é []const u8. O const significa que você pode ler os bytes, mas nunca escrever por meio dessa fatia.
u8 é um byte
O tipo de elemento u8 é um inteiro sem sinal de 8 bits. Tratar texto como u8 torna o Zig coerente: uma string são bytes brutos, não caracteres mágicos.
Uma fatia tem comprimento
Uma fatia carrega tanto um ponteiro quanto um comprimento, portanto a string conhece o próprio tamanho. Você nunca precisa de uma variável de comprimento separada nem de um terminador.
const name = "Zig";
// name.len == 3UTF-8 por convenção
Os arquivos de código-fonte do Zig usam UTF-8, portanto os literais armazenam o texto como bytes UTF-8. Um emoji ou uma letra acentuada pode ocupar vários bytes, não apenas um.
O comprimento conta bytes
Como o texto é formado por bytes, .len retorna a quantidade de bytes, não a quantidade de caracteres. Para ASCII simples, os dois números coincidem exatamente.
const s = "abc";
std.debug.print("{}", .{s.len}); // 3O índice retorna um byte
Indexar uma string devolve um único valor de byte u8, não um objeto de caractere. Para ASCII, esse byte é o código da letra.
const s = "AB";
const first = s[0]; // 65, the ANão é necessário terminador nulo
Ao contrário de C, uma fatia do Zig não depende de um byte zero no final para marcar seu término. O comprimento armazenado já informa ao código onde o texto termina.
Imprimindo uma string
Você imprime texto com o especificador de formato {s}, que informa ao Zig para exibir os bytes como uma string, em vez de números.
std.debug.print("{s}\n", .{"hello"});Bytes mutáveis precisam de [] u8
Remova o const para obter uma fatia []u8 gravável. Então você poderá alterar os bytes no próprio lugar, desde que eles estejam em uma memória que você possua.
Verificação rápida
Pense no tipo real por trás de um literal de string do Zig.
Recapitulação
Você aprendeu que o texto do Zig é apenas []const u8: bytes somente leitura com um comprimento, UTF-8 por convenção, indexados e medidos em bytes. 🎯
Aprenda Zig com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “Strings são []const u8” é grátis?
Sim — o texto completo de “Strings são []const u8” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Zig Academy, atualize para CoddyKit PRO. O curso de Zig Academy inclui 4 aulas no total.
O que vou aprender em “Strings são []const u8”?
Entenda por que as strings de Zig são fatias de bytes. Você pratica Zig Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Zig Academy?
Nenhuma experiência prévia é necessária. Zig Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Strings são []const u8”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Zig Academy?
Sim. Cada aula de Zig Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Strings são []const u8
- Literais de string e sequências de escape
- Comparando e pesquisando bytes
- Formatando texto com std.fmt