Menu
Coddy logo textTech

is_some() e is_none()

Parte da seção Logic & Flow do Journey de Rust da Coddy. Lição 37 de 66.

Às vezes você precisa verificar se um Option contém um valor sem realmente extrair esse valor. Rust fornece dois métodos convenientes para isso: .is_some() e .is_none().

Ambos os métodos retornam um valor booleano, tornando-os perfeitos para uso em condições if:

let maybe_score = Some(85);

if maybe_score.is_some() {
    println!("We have a score!");
}

if maybe_score.is_none() {
    println!("No score available");
}

O método .is_some() retorna true se o Option contém um valor Some, e false se for None. O método .is_none() funciona de maneira oposta - ele retorna true para None e false para Some.

challenge icon

Desafio

Fácil

Você receberá um número como entrada. Crie um Option<i32> que contenha Some(number) se o número for positivo, ou None se o número for zero ou negativo. Use .is_some() e .is_none() para verificar o Option e imprimir a mensagem apropriada.

Requisitos:

  • Leia a entrada e converta-a para i32
  • Crie uma variável Option<i32>:
    • Se o número for positivo (maior que 0), atribua Some(number)
    • Se o número for zero ou negativo, atribua None
  • Use .is_some() para verificar se o Option contém um valor
  • Se .is_some() retornar true, imprima: Positive number detected
  • Use .is_none() para verificar se o Option está vazio
  • Se .is_none() retornar true, imprima: No positive number

Entrada:

  • Um único número inteiro (ex: 42, 0, ou -5)

Saída:

  • Se o número for positivo: Positive number detected
  • Se o número for zero ou negativo: No positive number

Experimente você mesmo

use std::io;

fn main() {
    // Ler a entrada
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let number: i32 = input.trim().parse().expect("Invalid input");
    
    // TODO: Escreva seu código abaixo
    // Cria um Option<i32> baseado em se o número é positivo
    
    // Verifica se o Option é Some e imprime a mensagem apropriada
    
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Logic & Flow

Pratique por conta própria: Compilador de Rust online