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 |