'if let' 표현식
Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 4번째.
때로는 하나의 특정 패턴만 확인하면 되고 다른 모든 가능성에는 신경 쓰고 싶지 않을 때가 있습니다. 단 하나의 의미 있는 팔(arm)과 모든 것을 포괄하는 _만 있는 전체 match 표현식을 작성하는 것은 장황하게 느껴질 수 있습니다. Rust는 이러한 상황을 위해 더 간결한 대안으로 if let을 제공합니다.
if let 표현식은 패턴 매칭과 조건부 로직을 하나의 읽기 쉬운 문장으로 결합할 수 있게 해줍니다. 기본 구문은 다음과 같습니다:
if let pattern = value {
// 패턴이 일치할 때 실행할 코드
}예를 들어, 유효한 팔(arm)이 하나뿐인 match를 작성하는 대신:
let number = 5;
match number {
5 => println!("Found five!"),
_ => (), // 다른 값들에 대해서는 아무것도 하지 않음
}if let을 사용하여 더 깔끔하게 만들 수 있습니다:
let number = 5;
if let 5 = number {
println!("Found five!");
}if let 표현식은 패턴이 일치할 때만 코드 블록을 실행합니다. 패턴이 일치하지 않으면 아무 일도 일어나지 않으며, 원하는 경우가 아니라면 명시적인 "else" 케이스를 작성할 필요가 없습니다.
챌린지
쉬움숫자를 입력으로 받습니다. 입력을 읽고 정수로 변환한 뒤, if let 표현식을 사용하여 숫자가 정확히 42인지 확인하세요. 일치하면 "The answer!"를 출력합니다. 일치하지 않으면 아무것도 출력하지 않습니다.
요구 사항:
if let표현식을 사용하여 숫자가42와 같은지 확인하세요.- 숫자가
42이면"The answer!"를 출력하세요. - 그 외의 경우에는 아무것도 출력하지 마세요.
입력: 정수 하나
출력: 숫자가 42이면 "The answer!"를 출력하고, 그렇지 않으면 아무것도 출력하지 않습니다.
치트 시트
if let 표현식은 전체 match 문을 작성하지 않고도 단일 패턴을 매칭하는 간결한 방법을 제공합니다.
기본 구문:
if let pattern = value {
// 패턴이 일치할 때 실행할 코드
}match와 if let을 비교하는 예제:
// match 사용
let number = 5;
match number {
5 => println!("Found five!"),
_ => (), // 다른 값에 대해서는 아무것도 하지 않음
}
// if let 사용 (더 간결함)
let number = 5;
if let 5 = number {
println!("Found five!");
}if let 표현식은 패턴이 일치할 때만 실행됩니다. 일치하지 않으면 명시적인 else 절을 추가하지 않는 한 아무 일도 일어나지 않습니다.
직접 해보기
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("Please enter a valid number");
// TODO: 아래에 코드를 작성하세요
// if let을 사용하여 숫자가 42와 같은지 확인하세요
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.