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));
}여기에는 설명되지 않은 몇 가지 개념이 사용되었고, 궁금한 독자들을 위해 설명하고자 한다.