Rullst AcademyRullst Academy/Lección
Rust: de la idea al programa · Lección 07 / 08

¿Y si no hay bonificación?

No todas las rondas ganan bonificación. En vez de fingir que siempre existe un valor, representaremos ambas posibilidades en el propio tipo.

Rutas de aprendizaje10 min

Vamos a descubrir juntos

  1. 1

    Option<u32> significa «puede existir un u32». Some(5) contiene 5; None representa ausencia. None no es un número oculto.

  2. 2

    La función bonus recibe aciertos. Con tres o más devuelve Some(5); con menos de tres devuelve None. Lo declara con -> Option<u32>.

  3. 3

    match examina el valor: Some(extra) => base + extra, None => base. extra recibe el número dentro de Some; con None no se suma nada extra.

  4. 4

    Manejar ambas variantes hace visible la ausencia. Some(0) contiene un valor, cero; None indica que no existe un valor. Evita asumir presencia cuando el tipo permite ausencia.

✦
TU MISIÓN

Interpreta Some y None y maneja ambos caminos con match.

Ahora te toca

Taller de descubrimientos

Abre ambas posibilidades

Regla: bonus(correct) devuelve Some(5) si correct >= 3; en caso contrario, None.
Prepara tus respuestas y comprueba cuando estés listo.
Una pausa para entender

¿Qué caso indica que no existe un valor de bonificación?

Necesito una pista

Some siempre guarda un valor, incluso si es cero.

Cargando tu camino…

Llévatelo contigo

Piensa en una búsqueda que puede no encontrar un elemento. ¿Cómo te recordaría Option que «no encontrado» es una posibilidad normal?

Quiero ver el Rust que hay detrás

Esta parte es opcional. No necesitas memorizar el 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}");
}
A tu ritmo

Mis archivos y GitHub

Cada lección puede convertirse en un registro propio: código, notas o un plan de práctica. Guardar un archivo en GitHub es opcional y no cambia tus XP.

Manual del alumno

El editor y las descargas se abren cuando esta lección esté disponible para tu cuenta. Revisa el acceso indicado abajo o vuelve al mapa de la ruta.

Comprobando tu acceso a esta lección…

Rullstpetbot

La IA puede equivocarse. Consulta el material de la lección.