러스트 데이터 타입 종류
- 스칼라 타입
- 컴파운드 타입
스칼라 타입이란?
- 하나의 값으로 표현되는 타입
- 정수
- 부동 소수점
- boolean
- 문자
정수형 타입의 종류
8-bit
:i8
oru8
16-bit
:i16
oru16
32-bit
:i32
oru32
64-bit
:i64
oru64
arch
:isize
orusize
설명
i
로 시작하는 타입은Signed
의 의미를 가진다.u
로 시작하는 타입은Unsigned
의 의미를 가진다.isize
와usize
는 컴퓨터 환경의 아키텍처에 따라32bit
혹은64bit
로 결정된다.- 주로 일부 콜렉션 타입의 색인에 사용된다.
확실하게 정해진 경우가 아니라면, 환경 아키텍처와 무관하게 Rust 의 기본 값인
i32
가 가장 좋은 성능을 발휘한다.
정수형 리터럴들
정수형 리터럴이란, 정수가 표현되는 방식을 말한다.
Decimal
:98_222
Hex
:0xff
Octal
:0o77
Binary
:0b1111_0000
Byte (u8 only)
:b'A'
부동 소수점 타입
- IEEE-754 표준에 따라 표현된다.
f32
와f64
가 존재하며, 기본 값은f64
이다.
Boolean 타입
bool
로 표기된다.
문자 타입
- 작은 따옴표 안에 1글자의 문자를 표현하는 타입이다.
- 값의 범위는 유니코드
U+0000
에서U+D7FF
그리고U+E000
에서U+10FFF
를 포괄한다.
fn main() {
let c = 'z';
let z = 'ℤ';
let heart_eyed_cat = '😻';
}
컴파운드 (복합) 데이터 타입
튜플
몇개의 타입을 합쳐 하나의 타입으로 만드는 방식이다.
fn main() {
let tup: (i32, f64, u8) = (500, 6.4, 1);
}
// 튜플 구조 해제의 예
fn main() {
let tup = (500, 6.4, 1);
let (x, y, z) = tup;
println!("The value of y is: {}", y);
}
// 튜플에서 각 프로퍼티를 가져오는 예
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];
let first = a[0];
let second = a[1];
}
fn main() {
let a = [1, 2, 3, 4, 5];
let index = 10;
let element = a[index];
println!("The value of element is: {}", element);
}
위처럼 인덱스를 넘어가면,
$ cargo run
Compiling arrays v0.1.0 (file:///projects/arrays)
Finished dev [unoptimized + debuginfo] target(s) in 0.31 secs
Running `target/debug/arrays`
thread '<main>' panicked at 'index out of bounds: the len is 5 but the index is
10', src/main.rs:6
note: Run with `RUST_BACKTRACE=1` for a backtrace.
위와 같은 오류를 만나게 된다.
반응형
'러스트 (Rust)' 카테고리의 다른 글
러스트 (Rust) 의 반복문 정리 (0) | 2022.11.01 |
---|---|
러스트 (Rust) 의 제어문 문법 정리 (0) | 2022.11.01 |
러스트 (Rust) 함수 사용법 핵심 정리 (0) | 2022.11.01 |
러스트의 섀도잉(Shadowing) 혹은 쉐도우(Shadow) 란? (1) | 2022.11.01 |
러스트 (Rust) 컴파일러 설치 방법 (0) | 2022.10.31 |