기본 자료형(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
- Rust - String을 char 리스트(Vector)로 변환
- Rust - 문자가 대문자인지 소문자인지 확인
- Rust - String에서 줄바꿈(newline) 문자 제거 방법
- Rust - String 대문자, 소문자 변환
- Rust - 현재 시간 가져오기 (DateTime, chrono)
- Rust - 예외 처리 방법 (Exception handling)
- Rust - String.find()으로 문자열 Index 찾기
- Rust - match (Switch) 사용 방법
- Rust - Vector의 요소 제거 방법 (remove, retain, drain)
- Rust - String의 특정 Index 값 가져오기
- Rust - 문자열 뒤집기, 역순으로 변경
- Rust - String 객체에 문자열 추가하기
- Rust - sleep(), 몇 초 지연/대기 방법
- Rust - String을 Int, Float으로 변환
- Rust - Integer를 String으로 변환
- Rust - Float를 String으로 변환
- Rust - String 비교 방법 (==, !=, eq, ne)
- Rust - String을 str으로, str을 String으로 변환
- Rust - String 공백 제거 (trim, replace)
- Rust - 2개의 배열이 같은지 비교 (==, equals)
- Rust - 배열 길이 가져오기 (Array length)
- Rust - Vector를 배열로 변환 (vector to array)
- Rust - 배열의 최소, 최대 값 찾기 (min, max)
- Rust - 배열의 합계, 평균 (sum, average)
- Rust - 2개의 Vector가 같은지 비교 (==, equals)
- Rust - HashMap을 Vector로 변환
- Rust - Vector의 최소, 최대 값 찾기 (min, max)
- Rust - Vector의 합계, 평균 (sum, average)
- Rust - 벡터 길이 가져오기 (Vector length)
- Rust - 배열을 HashSet으로 변환
- Rust - 배열을 벡터로 변환하는 방법
- Rust - 배열(벡터) 모든 요소 출력
- Rust - 배열 나누기, 자르기 (split_at, slice)
- Rust - 2개 벡터 하나로 합치기
- Rust - HashSet을 Vector로 변환