Rust - 기본 자료형 소개 (Boolean/Numeric/Array..)

기본 자료형(Primitive Type)은 언어에서 기본적으로 제공하는 데이터 타입입니다. 러스트도 다른 언어와 비슷하게 Boolean, Numeric, Array 등의 타입을 제공합니다.

러스트가 제공하는 기본 데이터 타입에 대해서 알아보겠습니다.

1. Boolean 타입

Boolean은 true 또는 false 값을 저장합니다.

아래와 같이 명시적, 암시적으로 타입을 선언하여 사용할 수 있습니다.

fn main() {
    let b1: bool = false;
    let b2 = true;

    println!("b1: {}", b1);
    println!("b2: {}", b2);
}

Output:

b1: false
b2: true

2. Numeric 타입

Numeric 타입은 Integer와 Float 같은 숫자들을 저장하는 데이터 타입입니다.

다음과 같은 타입을 지원합니다.

  • i8
  • i16
  • i32
  • i64
  • u8
  • u16
  • u32
  • u64
  • f32
  • f64
  • isize
  • usize

타입의 의미는 다음과 같습니다.

  • i : Signed Integer 타입
  • u : Unsigned Integer 타입
  • 8, 16, 32, 64 : 자료형의 bit로, 각각 8/16/32/64 bit를 의미
  • f : Float 타입
  • isize : Signed Integer이며, 32/64bit CPU 환경에 따라서 32/64 bit로 자료형 크기가 달라짐
  • usize : Unsigned Integer이며, 32/64bit CPU 환경에 따라서 32/64 bit로 자료형 크기가 달라짐

3. char 타입

다른 언어들처럼 문자를 저장할 수 있는 char 타입이 있습니다.

use std::mem;

fn main() {
    let c = 'c';
    let d: char = 'd';

    println!("c: {}", c);
}

Output:

c: c

4. str 타입

문자열을 저장하는 String 타입도 제공됩니다.

아래와 같이 명시적, 암시적으로 str 타입 객체를 선언할 수 있습니다.

use std::mem;

fn main() {
    let hello = "Hello World,";
    let rust: &str = "Rust";

    println!("str: {} {}", hello, rust);
}

Output:

str: Hello World, Rust

5. 배열(Array) 타입

배열은 [TYPE: N]로 선언할 수 있으며, 길이가 N이고 데이터 타입이 TYPE인 배열을 선언합니다.

아래와 같이 명시적, 암시적으로 길이가 3인 i32 타입의 배열을 생성할 수 있습니다.

fn main() {
    let arr1 = [1, 2, 3]; // [i32; 3]
    let arr1: [i32; 3] = [1, 2, 3]; // [i32; 3]
}

Output:

fn main() {
    let arr1 = [1, 2, 3]; // [i32; 3]
    let arr2: [i32; 3] = [1, 2, 3]; // [i32; 3]

    println!("len: {}", arr1.len());
    println!("arr1[1]: {}", arr1[1]);
}

6. Tuple 타입

다른 언에서 제공하는 Tuple도 제공합니다.

Tuple은 크기가 정해진 리스트 같은 것인데요. 아래와 같이 Tuple을 선언할 수 있습니다. 또한, let (a, b, c) = hello처럼 튜플에 저장된 값들을 변수에 할당할 수 있습니다.(destructuring)

fn main() {
    let hello = ("hello", "world", 100);
    let hello2: (&str, &str, i32) = ("hello", "world", 100);

    println!("tuple: {} {} {}", hello.0, hello.1, hello.2);

    let (a, b, c) = hello;
    println!("a: {}, b: {}, c: {}", a, b, c);

}

Output:

tuple: hello world 100
a: hello, b: world, c: 100
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha