5.1 Literals
숫자 리터럴은 타입을 접미어로 추가해서 타입을 주해할 수 있다. 예를 들어, 특정한 리터럴 42
는 i32
타입이니, 42i32
로 사용할 수 있다.
접미어가 없는 숫자 리터럴 타입은 그들의 사용 형태에 달려있다. 만약 제약사항이 없다면, 컴파일러는 i32
를 정수형을 위해 부여하고 f64
를 부동소수점 숫자를 부여한다.
fn main() { // 접두어가 붙은 리터럴, 이들의 타입은 초기화될 때 알려 수 있다. let x = 1u8; let y = 2u32; let z = 3f32; // 접두어 없는 리터럴, 이들의 타입은 그들의 사용처에 달렸다. let i = 1; let f = 1.0; // `size_of_val` 변수 사이즈를 바이트 단위로 리턴. println!("size of `x` in bytes: {}", std::mem::size_of_val(&x)); println!("size of `y` in bytes: {}", std::mem::size_of_val(&y)); println!("size of `z` in bytes: {}", std::mem::size_of_val(&z)); println!("size of `i` in bytes: {}", std::mem::size_of_val(&i)); println!("size of `f` in bytes: {}", std::mem::size_of_val(&f)); }
여기에는 설명되지 않은 몇 가지 개념이 사용되었고, 궁금한 독자들을 위해 설명하고자 한다.