Rust, 쉽게 하자!

Rust 입문

[Rust] 데이터 타입

바로크냥 2022. 9. 25. 07:23

1. 데이터 타입 

Rust가 제공하는 대표적인 데이터 타입은 다음과 같습니다. 

 

정수: i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize

부동소수점: f32, f64

불리언: true, false

문자열: “Hello World!”

배열: [1,2,3,4,5]

슬라이스: &arr [2…5]

튜플: (1,2,3,4,5)

문자: ‘a’

 


 

데이터 타입의 분류 중에 Primitive Type이라는 것이 있습니다.

이런 타입의 값들은 실제로 데이터 값을 저장합니다. 

다르게 말하면, 이 타입들 보다 더 작은 단위의 타입은 없습니다. 이 타입들의 조합으로 다른 데이터 타입이 만들어집니다. 

Primitive Type에는 정수, 부동소수점 같은 숫자형 데이터 타입, 문자(char) 그리고 불리언 타입이 해당합니다. 

문자열은 문자의 조합이므로 Primitive Type이 아닙니다.

 


 

알아두면 좋을 몇 가지만 살펴 보겠습니다.

 

  • string과 char

문자 (char) 타입을 사용할  때는 쌍따옴표 “a”가 아니라  따옴표 ‘a’를 사용 해야 합니다. 쌍따옴표는 문자가 하나가 있거나 아예 없더라도 문자열 리터럴로 간주합니다.

 

  • i와 u

정수형에서 i는 부호 있는 정수이고 u는 부호 없는 양의 정수입니다.

i32는 부호있는 32비트 정수

u32는 부호 없는 32비트 양의 정수입니다.

i와 u는 size에서도 같은 의미로 사용됩니다. 

 

  • Size

Rust의 레퍼런스에 따르면,  Size 타입은 메모리의 위치를 참조하는데 사용하는 바이트 수입니다.isize와 usize이 포함됩니다. 

배열이나 문자열 등의 길이를 표현할 때 사용합니다. 예를 보겠습니다.

 let h = "hello";
 let k = f.len();         // 1
 println!("{}", k);

// 출력
5

// 1: len 메소드는 문자열의 길이를 반환합니다. len 메소드의 시그니처는 다음과 같습니다.

pub const fn len(&self) -> usize

반환값 타입이 usize임을 확인 할 수 있습니다. 

 

  • underscore( _ )

숫자형 타입에는 “_”을 독특한 용법으로 사용할 수 있습니다.

let a = 123_456_789;        // 1
let b :i32 = 100;           // 2
let c = 100_i32;            // 3
let d = 12.34_f64;          // 4
let e = 100i32;             // 5
let f = 12.3f64;            // 6

// 1: 여기서 사용 된 “_”는 아무런 효과도 없습니다. 다만 읽기 쉽게 만들 뿐입니다.

// 2: 변수의 데이터 타입을 명시적으로 선언했습니다.

// 3: “_”을 접미사로 사용해서 변수의 타입을 선언 할 수 있습니다. // 2와 동일한 데이터 타입과 값을 가집니다. 

// 4: 부동소수점 타입에도 사용할 수 있습니다.

// 5와 // 6: 접미사를 사용해서 타입을 선언할 경우 반드시 “_”을 사용할 필요는 없습니다. “_”은 다만 가독성을 높이기 위헤서 사용합니다.

 


 

참고로, 이진수, 팔진수, 십육진수 등을 표현하는 방법도 알아 보겠습니다.

fn main() {
    // 1
    let a = 0b1011;          
    let b = 0o12;     
    let c = 0xA1C2;             

    // 2
    println!("십진수 a:{}, b:{}, c:{}", a,b,c);
    println!("이진수 a:{:b}, b:{:b}, c:{:b}", a,b,c);
    println!("팔진수 a:{:o}, b:{:o}, c:{:o}", a,b,c);
    println!(" 십육진수 a:{:x}, b:{:x}, c:{:x}", a,b,c);
}

// 출력
십진수 a:11, b:10, c:41410
이진수 a:1011, b:1010, c:1010000111000010
팔진수 a:13, b:12, c:120702
십육진수 a:b, b:a, c:a1c2

// 1: “0b”, “0o”, “0x” 접두사는 각각 이진수, 팔진수, 십육진수를 표현합니다.

// 2: 포맷터를 사용해서  출력할 진수 형식을 지정하고 있습니다. { } 안의 :b 같은 것들이 포맷터입니다. 

 
반응형

'Rust 입문' 카테고리의 다른 글

[Rust] 데이터 타입 변환과 유추  (0) 2022.09.25
[Rust] 변수, 상수 그리고 static  (0) 2022.09.25
[Rust] println! 매크로  (1) 2022.09.23
[Rust] 주석 달기  (1) 2022.09.23
[Rust] main()을 알아보자  (1) 2022.09.23