Please enable JavaScript to view the comments powered by Disqus.Rust 의 if Expressions
Search
🎿

Rust 의 if Expressions

태그
Rust
공개여부
작성일자
2023/09/16
if 는 expression 이며 condition에 따라 알맞은 브랜치로 로직을 이동시킨ㄴ다.
fn main() { let number = 3; if number < 5 { println!("condition was true"); } else { println!("condition was false"); } }
Rust
복사
if expression의 조건과 관련된 코드 블록을 arms 라고도 불린다.
if 뒤에 바로 condition이 오고, 이 condition은 bool 이어야 한다.
fn main() { let number = 3; if number { println!("number was three"); } }
Rust
복사
이런 경우는 에러를 반환한다.
Multiple if는 아래와 같다.
fn main() { let number = 6; if number % 4 == 0 { println!("number is divisible by 4"); } else if number % 3 == 0 { println!("number is divisible by 3"); } else if number % 2 == 0 { println!("number is divisible by 2"); } else { println!("number is not divisible by 4, 3, or 2"); } }
Rust
복사

iflet statement에서 쓰는 경우

fn main() { let condition = true; let number = if condition { 5 } else { 6 }; println!("The value of number is: {number}"); }
Rust
복사
Kotlin과 분위기가 비슷하다.
중요한 것은 if 문 뒤에 코드 블록의 expression의 type이 모두 일치해야 한다. 예를들어 다음과 같은 코드는 compile 에러를 반환한다.
fn main() { let condition = true; let number = if condition { 5 } else { "six" }; println!("The value of number is: {number}"); }
Rust
복사
변수는 반드시 single type 이어야 한다.
Rust에선 compile time 에 variable의 정체를 알아낸다. 이러한 내용을 runtime에 알게된다면 더욱 복잡해지고 언어가 보장해주는 영역이 줄어들게 된다.