기본 자료형
Rust는 다양한 기본 자료형(primitives)에 대한 접근을 제공합니다. 샘플은 다음과 같습니다:
스칼라 타입
- 부호 있는 정수:
i8,i16,i32,i64,i128및isize(포인터 크기) - 부호 없는 정수:
u8,u16,u32,u64,u128및usize(포인터 크기) - 부동 소수점:
f32,f64 char유니코드 스칼라 값:'a','α','∞'등 (각 4바이트)bool:true또는false- 유닛 타입
(): 가능한 유일한 값은 빈 튜플()입니다.
유닛 타입의 값이 튜플임에도 불구하고, 여러 값을 포함하지 않기 때문에 복합 타입(compound type)으로 간주되지 않습니다.
복합 타입
[1, 2, 3]과 같은 배열(1, true)와 같은 튜플
변수는 항상 _타입 어노테이션_이 가능합니다. 숫자는 추가적으로 _접미사(suffix)_를 통하거나 _기본값_으로 어노테이션될 수 있습니다. 정수 기본값은 i32이고 부동 소수점 기본값은 f64입니다. 또한 Rust는 문맥으로부터 타입을 추론할 수도 있습니다.
fn main() {
// 변수는 타입 어노테이션이 가능합니다.
let logical: bool = true;
let a_float: f64 = 1.0; // 일반적인 어노테이션
let an_integer = 5i32; // 접미사 어노테이션
// 혹은 기본값이 사용됩니다.
let default_float = 3.0; // `f64`
let default_integer = 7; // `i32`
// 타입을 문맥에서 추론할 수도 있습니다.
let mut inferred_type = 12; // i64 타입이 다른 줄에서 추론됩니다.
inferred_type = 4294967296i64;
// 가변 변수의 값은 변경될 수 있습니다.
let mut mutable = 12; // 가변 `i32`
mutable = 21;
// 에러! 변수의 타입은 변경할 수 없습니다.
mutable = true;
// 변수는 섀도잉(shadowing)을 통해 덮어쓸 수 있습니다.
let mutable = true;
/* 복합 타입 - 배열과 튜플 */
// 배열 시그니처는 타입 T와 길이를 포함하여 [T; length] 형식입니다.
let my_array: [i32; 5] = [1, 2, 3, 4, 5];
// 튜플은 서로 다른 타입의 값들을 모아놓은 것이며
// 소괄호 ()를 사용하여 구성됩니다.
let my_tuple = (5u32, 1u8, true, -5.04f32);
}
참고:
std 라이브러리, mut, 추론(inference), 그리고 섀도잉(shadowing)