0Pricing
Zig Academy · Aula

Recursão e vários retornos

Crie funções que chamam a si mesmas e seguem caminhos diferentes.

Recursão e vários retornos é uma aula grátis de Zig Academy no CoddyKit. Esta é a aula 4 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.

Uma Função Chamando a Si Mesma

Recursão é quando uma função chama a si mesma para resolver, passo a passo, uma parte menor do mesmo problema. 🔁

Toda Recursão Precisa de um Caso-base

O caso-base é o ponto de parada. Sem ele, a função chamaria a si mesma indefinidamente e causaria estouro da pilha.

O Caso Recursivo

O caso recursivo chama a função novamente com uma entrada menor, avançando continuamente em direção ao caso-base.

fn factorial(n: u64) u64 {
    if (n <= 1) return 1;
    return n * factorial(n - 1);
}

Acompanhe uma Chamada Pequena

Chamar factorial(3) se torna 3 * factorial(2), depois 2 * factorial(1). O caso-base retorna 1, e os resultados são multiplicados de volta até o início.

A Recursão Usa a Pilha

Cada chamada adiciona um quadro à pilha. Níveis demais causam um estouro da pilha, portanto mantenha a profundidade da recursão sob controle.

Muitos Problemas Usam Laços

Qualquer solução recursiva também pode ser escrita como um laço. Os laços evitam quadros extras na pilha e, por isso, costumam ser a opção mais segura.

fn factorial(n: u64) u64 {
    var acc: u64 = 1;
    var i: u64 = 2;
    while (i <= n) : (i += 1) acc *= i;
    return acc;
}

Uma Função Retorna um Tipo

Uma função Zig tem um único tipo de retorno, mas pode ter várias instruções return que produzem esse mesmo tipo.

Retornos Antecipados Criam Ramificações

Você pode retornar antecipadamente a partir de diferentes ramificações. Cada caminho retorna um valor do tipo declarado e sai imediatamente da função.

fn sign(n: i32) i32 {
    if (n > 0) return 1;
    if (n < 0) return -1;
    return 0;
}

Retorne Vários Valores em uma Estrutura

Para devolver vários valores, retorne uma estrutura ou tupla que os reúna em um único resultado.

fn divmod(a: u32, b: u32) struct { q: u32, r: u32 } {
    return .{ .q = a / b, .r = a % b };
}

Desempacote o Resultado

O chamador lê os campos reunidos pelo nome, como result.q e result.r, para usar cada parte retornada.

const res = divmod(7, 2);
// res.q is 3, res.r is 1

Retorne Erros Também

Uma função pode retornar uma união de erros, permitindo que uma ramificação sinalize uma falha enquanto outras retornam um valor normal.

Verificação Rápida

Você escreve uma função recursiva, mas ela nunca para e causa uma falha. O que provavelmente foi esquecido?

Recapitulação

A recursão precisa de um caso-base e de uma chamada recursiva menor. Uma função tem um tipo de retorno, mas muitos caminhos de retorno, e uma estrutura reúne vários resultados. 🎯

Perguntas Frequentes

A aula “Recursão e vários retornos” é grátis?

Sim — o texto completo de “Recursão e vários retornos” é 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 “Recursão e vários retornos”?

Crie funções que chamam a si mesmas e seguem caminhos diferentes. 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 4 de 4.

Quanto tempo leva a aula “Recursão e vários retornos”?

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. Sintaxe de funções e tipos de retorno
  2. Passagem de valores versus referências
  3. Funções pub e visibilidade
  4. Recursão e vários retornos
← Voltar para Zig Academy