리터럴과 연산자
정수 1, 부동 소수점 1.2, 문자 'a', 문자열 "abc", 불리언 true 그리고 유닛 타입 ()은 리터럴을 사용하여 표현할 수 있습니다.
정수는 또한 0x, 0o, 0b 접두사를 사용하여 각각 16진수, 8진수, 2진수 표기법으로 표현할 수 있습니다.
가독성을 높이기 위해 숫자 리터럴에 언더스코어(_)를 삽입할 수 있습니다. 예를 들어 1_000은 1000과 같고, 0.000_001은 0.000001과 같습니다.
Rust는 또한 과학적 기수법(E-표기법)을 지원합니다. (예: 1e6, 7.6e-4). 관련 타입은 f64입니다.
우리는 사용하는 리터럴의 타입을 컴파일러에게 알려주어야 합니다. 당분간은 부호 없는 32비트 정수임을 나타내기 위해 u32 접미사를 사용하고, 부호 있는 32비트 정수임을 나타내기 위해 i32 접미사를 사용할 것입니다.
Rust에서의 사용 가능한 연산자와 우선순위는 다른 C 계열 언어들과 유사합니다.
fn main() {
// 정수 덧셈
println!("1 + 2 = {}", 1u32 + 2);
// 정수 뺄셈
println!("1 - 2 = {}", 1i32 - 2);
// TODO ^ `1i32`를 `1u32`로 변경하여 타입이 중요한 이유를 확인해 보세요
// 과학적 표기법
println!("1e4는 {}, -2.5e-3은 {}입니다", 1e4, -2.5e-3);
// 단락(Short-circuiting) 불리언 로직
println!("true AND false는 {}입니다", true && false);
println!("true OR false는 {}입니다", true || false);
println!("NOT true는 {}입니다", !true);
// 비트 연산
println!("0011 AND 0101은 {:04b}입니다", 0b0011u32 & 0b0101);
println!("0011 OR 0101은 {:04b}입니다", 0b0011u32 | 0b0101);
println!("0011 XOR 0101은 {:04b}입니다", 0b0011u32 ^ 0b0101);
println!("1 << 5는 {}입니다", 1u32 << 5);
println!("0x80 >> 2는 0x{:x}입니다", 0x80u32 >> 2);
// 가독성을 높이기 위해 밑줄을 사용하세요!
println!("백만은 {}로 씁니다", 1_000_000u32);
}