Zig Academy · Aula

Fatias: um ponteiro mais um comprimento

Faça referência a uma janela dentro de uma matriz.

Aula 2 de 413 etapas

Fatias: um ponteiro mais um comprimento é uma aula grátis de Zig Academy no CoddyKit. Esta é a aula 2 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.

Por que os Slices Existem

Os vetores têm um comprimento fixo, mas as funções frequentemente precisam trabalhar com qualquer comprimento. Um slice resolve isso descrevendo uma sequência flexível de elementos. 🔪

Duas Partes de Dados

Um slice é, na prática, apenas duas coisas reunidas: um ponteiro para o primeiro elemento e um comprimento que conta quantos elementos vêm depois.

O Tipo Slice

Você escreve um tipo slice como []T, com colchetes vazios e um tipo de elemento. []i32 significa um slice de inteiros com sinal.

var view: []i32 = undefined;

Slices Tomam Emprestado, Não Possuem

Um slice não possui sua memória; ele toma emprestada uma visão de outra coisa, geralmente um vetor. Os dados subjacentes precisam existir por mais tempo que o slice.

O Comprimento Existe em Tempo de Execução

Ao contrário de um vetor, o len de um slice é um valor de tempo de execução. É isso que permite que um único tipo slice cubra muitos tamanhos diferentes.

const n = view.len;

De Vetor para Slice

Obtenha um vetor inteiro como slice com [0..], que significa do índice zero até o fim. O slice passa a apontar para dentro desse vetor.

var data = [_]i32{ 5, 6, 7 };
const s = data[0..];

Indexando um Slice

Leia elementos por meio de um slice exatamente como faria com um vetor, usando colchetes. O índice é somado ao ponteiro armazenado para localizar o valor.

const middle = s[1];

Slices Somente para Leitura

Um []const u8 é um slice pelo qual você pode ler, mas não escrever. O const protege os dados tomados por empréstimo contra alterações acidentais.

const msg: []const u8 = "hi";

Passar Slices é Econômico

Passar um slice para uma função copia apenas o ponteiro e o comprimento, nunca os elementos. Grandes buffers são passados sem custo adicional.

fn sum(items: []const i32) i32 {
    // walk items here
}

Slices Continuam com os Limites Verificados

Como uma fatia conhece seu comprimento, o acesso por índice continua verificado. Ultrapassar len dispara um pânico de segurança em compilações seguras.

Fatia vazia é válida

Uma fatia pode conter zero elementos. Uma fatia vazia simplesmente tem len igual a 0, o que é perfeitamente normal ao passá-la adiante.

const nothing: []const i32 = &[_]i32{};

Verificação rápida

Pense no que uma fatia realmente armazena em comparação com um vetor de tamanho fixo. Qual par a descreve?

Recapitulação

Uma fatia é um ponteiro mais um comprimento que toma emprestada uma visão dos dados existentes, continua com os limites verificados e é passada de forma econômica por referência. 🎯

Grátis para começar

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 “Fatias: um ponteiro mais um comprimento” é grátis?

Sim — o texto completo de “Fatias: um ponteiro mais um comprimento” é 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 “Fatias: um ponteiro mais um comprimento”?

Faça referência a uma janela dentro de uma matriz. 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 2 de 4.

Quanto tempo leva a aula “Fatias: um ponteiro mais um comprimento”?

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

  1. Matrizes de tamanho fixo
  2. Fatias: um ponteiro mais um comprimento
  3. Criando fatias com array[start..end]
  4. Percorrendo e alterando fatias
← Voltar para Zig Academy