Rullst AcademyRullst Academy/Lição
Rust: da ideia ao programa · Lição 07 / 08

E quando não existe bônus?

Nem toda rodada ganha bônus. Em vez de fingir que sempre existe um valor, vamos representar as duas possibilidades no próprio tipo.

Trilhas de aprendizado10 min

Vamos descobrir juntos

  1. 1

    Option<u32> significa “pode existir um u32”. Some(5) contém o valor 5; None representa ausência. None não é um número escondido.

  2. 2

    Nossa função bonus recebe acertos. Com três ou mais, devolve Some(5); com menos de três, devolve None. Ela declara isso com -> Option<u32>.

  3. 3

    match examina o valor: Some(extra) => base + extra, None => base. extra recebe o número que estava dentro de Some; no caso None, nenhum extra é somado.

  4. 4

    Tratar as duas variantes torna a ausência visível. Some(0) ainda contém um valor, o zero; None diz que o valor não existe. Evite assumir presença quando o tipo permite ausência.

✦
SUA MISSÃO

Interprete Some e None e trate os dois caminhos com match.

Agora é a sua vez

Oficina de descobertas

Abra as duas possibilidades

Regra: bonus(correct) retorna Some(5) se correct >= 3; caso contrário, None.
Monte suas respostas e confira quando estiver pronto.
Uma pausa para entender

Qual caso diz que não existe valor de bônus?

Preciso de uma pista

Some sempre guarda um valor, inclusive quando esse valor é zero.

Carregando sua jornada…

Leve com você

Pense em uma busca que pode não encontrar um item. Como Option ajudaria a lembrar que “não encontrado” é uma possibilidade normal?

Quero ver o Rust por trás

Esta parte é opcional. Não precisa decorar o código para continuar.

fn bonus(correct: u32) -> Option<u32> {
    if correct >= 3 { Some(5) } else { None }
}

fn main() {
    let total = match bonus(3) {
        Some(extra) => 30 + extra,
        None => 30,
    };
    println!("{total}");
}
No seu ritmo

Meus arquivos e GitHub

Toda lição pode virar um registro seu: código, anotações ou um plano de prática. Guardar um arquivo no GitHub é opcional e não altera seu XP.

Manual do aluno

O editor e os downloads abrem quando esta lição estiver liberada para sua conta. Confira o acesso abaixo ou volte ao mapa da trilha.

Conferindo seu acesso à lição…

Rullstpetbot

A IA pode errar. Confira no material da lição.