2.1 Literals and operators
정수형 1
, 부동형 1.2
, 문자형 'a'
, 문자열 "abc"
, boolean형 true
그리고 ()
같은 유닛 형이 리터럴로 표현될 수 있다.
정수형은 0x
, 0o
, 0b
같은 접두사를 사용하여 16진수, 8진수 혹은 2진수로 표현될 수 있다.
숫자 리터럴은 밑줄을 통해 가독성을 향상시킬 수 있다, 예 1_000
은 1000
과 같고, 0.000_001
은 0.000001
과 같다.
우리는 컴파일러에게 우리가 사용하는 리터럴의 타입을 알려줄 필요가 있다. 여기서 u32
는 접미어로 사용되어 부호 없는 32-비트 정수를 나타내고, i32
접미어는 부호 있는 32-비트 정수형을 나타낸다.
연산자의 허용과 우선 순위는 Rust에 따르며 C-like languages 와 유사하다.
fn main() { // 정수 더하기 println!("1 + 2 = {}", 1u32 + 2); // 정수 빼기 println!("1 - 2 = {}", 1i32 - 2); // TODO ^ `1i32`를 `1u32`로 변경하여 왜 타입이 중요한지 알아보세요. // 짧은 boolean 논리 연산 println!("true AND false is {}", true && false); println!("true OR false is {}", true || false); println!("NOT true is {}", !true); // 비트 연산 println!("0011 AND 0101 is {:04b}", 0b0011u32 & 0b0101); println!("0011 OR 0101 is {:04b}", 0b0011u32 | 0b0101); println!("0011 XOR 0101 is {:04b}", 0b0011u32 ^ 0b0101); println!("1 << 5 is {}", 1u32 << 5); println!("0x80 >> 2 is 0x{:x}", 0x80u32 >> 2); // 밑줄을 사용하여 가독성 올려버리기~ println!("One million is written as {}", 1_000_000u32); }