Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

기본 자료형

Rust는 다양한 기본 자료형(primitives)에 대한 접근을 제공합니다. 샘플은 다음과 같습니다:

스칼라 타입

  • 부호 있는 정수: i8, i16, i32, i64, i128isize (포인터 크기)
  • 부호 없는 정수: u8, u16, u32, u64, u128usize (포인터 크기)
  • 부동 소수점: 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)