RUST의 데이터 타입

2024. 10. 10. 17:35·Programming Language/RUST

Rust의 데이터 타입

Rust는 타입이 고정된 언어이다.

이는 모든 변수의 타입이 컴파일 시에 반드시 정해져 있어야 한다는 뜻이다.

보통 컴파일러는 사용된 값에 따라 타입을 추측할 수 있지만, 타입의 선택 폭이 넓은 경우에는 반드시 타입을 명시해야 한다.

Rust의 데이터 타입은 크게 스칼라와 컴파운드로 나눌 수 있다.

 

스칼라 타입 데이터

스칼라는 하나의 값으로 표현되는 타입으로, 다음 데이터형이 스칼라 타입에 해당된다.

  • 정수형
  • 부동소수점
  • boolean
  • 문자

 

정수형

Rust의 기본 정수 타입은 i32 이다. (64-bit 에서도 마찬가지)

Rust에서의 정수 타입

Length Signed Unsigned
8-bit i8 u8
16-bit i16 u16
32-bit i32 u32
64-bit i64 u64
arch isize usize

 

Rust의 정수형 리터럴

Number literals Example
Decimal 98_222
Hex 0xff
Octal 0o77
Binary 0b1111_0000
Byte (u8 only) b'A'

 

부동 소수점

Rust의 부동 소수점 타입은 f32와 f64 가 있으며, 기본 타입은 f64이다.

이는 최신 CPU에서는 f32와 f64는 비슷한 속도를 내지만 f64가 더 정밀한 표현이 가능하기 때문이다.

 

Boolean

true와 false값으로 가지는 타입으로, Rust에서 bool로 명시됨

fn main() {
    let t = true;

    let f: bool = false; // 타입 명시하기
}

 

문자

Rust는 문자 타입인 char도 지원한다.

문자열에는 큰 따옴표를 사용하고, 문자는 작은 따옴표를 사용하는 것에 주의하자.

 

컴파운드 타입 데이터

Rust는 튜플과 배열을 갖고 있다.

 

튜플

튜플은 다양한 타입의 몇 개의 숫자를 집합시켜 하나의 컴파운드 타입으로 만드는 일반적인 방법이다.

각 타입을 명시해 원하는 데이터 타입을 지정할 수 있고, 따로 명시하지 않을 경우 기본 타입으로 지정된다.

fn main() {
    let tup: (u32, f64, i32) = (10, 6.5, 80);

    let tup2 = (10, 2.0, 3);
}

 

개별 튜플 값을 밖으로 빼려면, 패턴 매칭을 이용해야 한다.

이것을 구조해체(destructuring)라고 한다.

fn main() {
    let tup = (500, 6.4, 1);

    let (x, y, z) = tup;

    println!("The value of y is: {}", x);
    println!("The value of y is: {}", y);
    println!("The value of y is: {}", z);
}

 

튜플 값에 직접 접근하려면 마침표(.)를 이용할 수 있다.

fn main() {
    let x: (i32, f64, u8) = (500, 6.4, 1);

    let five_hundred = x.0;

    let six_point_four = x.1;

    let one = x.2;
}

 

배열

배열은 튜플과 다르게 모든 요소가 같은 타입이어야 한다.

또한, 고정된 길이를 갖기 때문에 선언된 크기에서 커지거나 작아지지 않는다.

fn main() {
    let a = [1, 2, 3, 4, 5];
}

 

배열은 stack에 하나의 메모리 덩어리로 할당된다.

인덱싱을 통해 배열의 요소에 접근할 수 있다.

fn main() {
    let a = [1, 2, 3, 4, 5];

    let first = a[0];
    let second = a[1];
}

 


참고 자료

https://rinthel.github.io/rust-lang-book-ko/ch03-02-data-types.html

 

데이터 타입들 - The Rust Programming Language

이 문서는 2판 번역본입니다. 최신 2021 에디션 문서는 https://doc.rust-kr.org 에서 확인하실 수 있습니다. Rust에서 사용되는 모든 값들은 어떤 타입을 갖습니다. 그러니 어떤 형태의 데이터인지 명시

rinthel.github.io

 

저작자표시 비영리 (새창열림)

'Programming Language > RUST' 카테고리의 다른 글

[Rustling] exercises/01_variables/variables1.rs 풀기  (1) 2024.10.11
Rustling 시작하기  (3) 2024.10.11
Rust의 변수  (1) 2024.10.08
Rust로 만드는 숫자 추리 게임  (8) 2024.10.08
Hello, Cargo! (with VS Code)  (0) 2024.10.07
'Programming Language/RUST' 카테고리의 다른 글
  • [Rustling] exercises/01_variables/variables1.rs 풀기
  • Rustling 시작하기
  • Rust의 변수
  • Rust로 만드는 숫자 추리 게임
602zzang
602zzang
  • 602zzang
    yks_STUDY
    602zzang
  • 전체
    오늘
    어제
    • 분류 전체보기 (77)
      • Programming Language (36)
        • C (15)
        • PYTHON (9)
        • RUST (12)
      • Reverse Engineering (3)
      • OS (17)
        • LINUX (17)
      • 보안 이슈 (6)
      • Digital Forensics (1)
      • CTF (8)
      • 기타 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    rust
    Rocky Linux
    picoCTF
    소켓 통신
    umassctf2025
    보안동향
    c
    드림핵
    빡공팟
    rustling
    코드업
    P4C
    bandit
    파이썬
    cyberdefenders
    보안이슈
    TeamH4C
    python
    백준
    공급망
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
602zzang
RUST의 데이터 타입
상단으로

티스토리툴바