Menu
Coddy logo textTech

is_some()과 is_none()

Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 37번째.

때때로 Option이 실제로 그 값을 추출하지 않고도 값을 포함하고 있는지 확인해야 할 때가 있습니다. Rust는 이를 위해 두 가지 편리한 메서드인 .is_some().is_none()을 제공합니다.

두 메서드 모두 불리언 값을 반환하므로 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");
}

.is_some() 메서드는 OptionSome 값을 포함하면 true를 반환하고, None이면 false를 반환합니다. .is_none() 메서드는 반대로 작동합니다. 즉, None에 대해 true를 반환하고 Some에 대해 false를 반환합니다.

challenge icon

챌린지

쉬움

입력으로 숫자를 받게 됩니다. 숫자가 양수이면 Some(number)를 포함하고, 숫자가 0이거나 음수이면 None을 포함하는 Option<i32>를 생성하세요. .is_some().is_none()을 사용하여 Option을 확인하고 적절한 메시지를 출력하세요.

요구 사항:

  • 입력을 읽고 i32로 변환합니다.
  • Option<i32> 변수를 생성합니다:
    • 숫자가 양수(0보다 큰 경우)이면 Some(number)를 할당합니다.
    • 숫자가 0이거나 음수이면 None을 할당합니다.
  • .is_some()을 사용하여 Option에 값이 포함되어 있는지 확인합니다.
  • .is_some()true를 반환하면 Positive number detected를 출력합니다.
  • .is_none()을 사용하여 Option이 비어 있는지 확인합니다.
  • .is_none()true를 반환하면 No positive number를 출력합니다.

입력:

  • 단일 정수 (예: 42, 0, 또는 -5)

출력:

  • 숫자가 양수인 경우: Positive number detected
  • 숫자가 0이거나 음수인 경우: No positive number

치트 시트

.is_some()을 사용하여 Option에 값이 포함되어 있는지 확인합니다:

let maybe_score = Some(85);

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

.is_none()을 사용하여 Option이 비어 있는지 확인합니다:

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

두 메서드 모두 불리언 값(true 또는 false)을 반환합니다.

직접 해보기

use std::io;

fn main() {
    // 입력 읽기
    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: 아래에 코드를 작성하세요
    // 숫자가 양수인지 여부에 따라 Option<i32> 생성
    
    // Option이 Some인지 확인하고 적절한 메시지 출력
    
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Logic & Flow의 모든 레슨