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() 메서드는 Option이 Some 값을 포함하면 true를 반환하고, None이면 false를 반환합니다. .is_none() 메서드는 반대로 작동합니다. 즉, None에 대해 true를 반환하고 Some에 대해 false를 반환합니다.
챌린지
쉬움입력으로 숫자를 받게 됩니다. 숫자가 양수이면 Some(number)를 포함하고, 숫자가 0이거나 음수이면 None을 포함하는 Option<i32>를 생성하세요. .is_some()과 .is_none()을 사용하여 Option을 확인하고 적절한 메시지를 출력하세요.
요구 사항:
- 입력을 읽고
i32로 변환합니다. Option<i32>변수를 생성합니다:- 숫자가 양수(0보다 큰 경우)이면
Some(number)를 할당합니다. - 숫자가 0이거나 음수이면
None을 할당합니다.
- 숫자가 양수(0보다 큰 경우)이면
.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인지 확인하고 적절한 메시지 출력
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
Logic & Flow의 모든 레슨
6'Option'으로 값이 없는 경우 처리하기
'Option'이란 무엇인가요?'Option'과 함께 'match' 사용하기is_some()과 is_none()'Option' 언래핑하기expect 메서드기본값 제공하기: unwrap_or요약 - 요소 찾기