Thinking Different




데이터 타입

 

러스트(Rust) 에서 사용되는 데이터 타입에 대해서 알아보도록 하겠습니다.

 

 

 

정수형 타입

크기 Signed Unsigned
8 비트 i8 u8
16 비트 i16 u16
32 비트 i32 u32
64 비트 i64 u64
128 비트 i128 u128
아키텍처별 타입 isize usize
let ii8: i8 = 10; // i8 형식으로 똑같다
let i = 10_i8;    // i8 형식으로 똑같다
let j = 10i8;     // i8 형식으로 똑같다

let ii16: i16 = 15;
let ii32: i32 = 20;
let ii64: i64 = 25;
let ii128: i128 = 30;

 

정수형 타입 범위

println!("i8   : {} ~ {}", i8::MIN, i8::MAX);
println!("u8   : {} ~ {}", u8::MIN, u8::MAX);
println!("i16  : {} ~ {}", i16::MIN, i16::MAX);
println!("u16  : {} ~ {}", u16::MIN, u16::MAX);
println!("i32  : {} ~ {}", i32::MIN, i32::MAX);
println!("u32  : {} ~ {}", u32::MIN, u32::MAX);
println!("i64  : {} ~ {}", i64::MIN, i64::MAX);
println!("u64  : {} ~ {}", u64::MIN, u64::MAX);
println!("i128 : {} ~ {}", i128::MIN, i128::MAX);
println!("u128 : {} ~ {}", u128::MIN, u128::MAX);

 

 

부동 소수점 타입

크기 타입
32 비트 f32
64 비트 f64
let a: f32 = 1.2;   // f32
let b: f64 = 3.4;   // f64

 

 

 

bool 형 타입

타입
bool true 혹은 false

 

let bType: bool = true;

 

 

 

문자형

타입 크기 범위
char 4byte U+0000 ~ U+D7FF

              ~

U+E000 ~ U+10FFFF
let ch: char = 'X';
let cat: char = '😻';

 

 

 

문자열

let str = "Hello World!";

 

 

 

배열(array)

동일한 데이터 타입을 갖는 요소들의 집합

 

let arr: [i32; 5] = [1, 2, 3, 4, 5];
println!("{}", arr[1]);   // arr[1] 값 출력
println!("{:?}", arr);    // arr 전체 출력

 

 

 

듀플(tuple)

여러 데이터 타입의 값들을 하나로 묶는 데이터타입

 

    let tu: (i32, bool, char) = (7, true, 'T');
    let data = ("test", 'A', 10, false);
    
    println!("{}", tu.2);    // tuple 값 출력
    println!("{}", data.0);
    
    let(a, b, c) = tu;       // tuple 값을 a, b, c 변수에 저장
    println!("{}, {}, {}", a, b, c);

 

 

 

가변 변수 : mut

변수의 데이터가 변경되어야 할때에는 변수명 mut 키워드를 지정한다

let mut a: i32 = 10;
println!("{}", a);  // 10 출력
    
a = 20;            // 에러 없음
println!("{}", a); // 20 출력

 

 

 

상수 (sonstant)

변하지 않는 값을 갖는다. 상수는 let 이 아닌 const 로 선언되며 항상 데이터타입이 지정되어야 한다.

const data: i32 = 1004;
let a = data * 100;
println!("{}", a);

 

 

 

Shadowing

rust 에서만 제공되는 기능으로 let으로 선언된 변수를 동일한 스코프 블럭내에서 여러번 let으로 정의하여 사용하는것이 가능하다.

let a = 10;
println!("{}", a);
    
let a = 'a';
println!("{}", a);
    
let a = 3.14;
println!("{}", a);
    
let a = "Hello World!";
println!("{}", a);

 

 

 

블록 변수 선언

 

다음과 같이 변수도 선언이 가능합니다.

let x = { 
        let a = 10;
        a * 2
    };

'프로그래밍 언어 > Rust' 카테고리의 다른 글

[Rust] 6. 제어문과 반복문 (if, loop, for, while)  (0) 2023.01.26
[Rust] 5. 주석  (0) 2023.01.26
[Rust] 4. 함수  (0) 2023.01.24
[Rust] 2. Rust 설치 없이 온라인에서 코딩하기  (0) 2023.01.18
[Rust] 1. Rust 란?  (0) 2023.01.18