시뻘건 개발 도전기

러스트 5 - 변수와 타입 #2 본문

프로그래밍/RUST

러스트 5 - 변수와 타입 #2

시뻘건볼때기 2019. 2. 16. 16:56
반응형

Rust에서의 타입은 scalarcompound로 나눌 수 있다.



이번 포스팅을 읽게 된다면 statically typed language라는 점을 명시하며 읽기를 바란다. 즉, 컴파일할 때에 Project 내의 선언된 모든 변수들의 타입이 지정되어 있어야 한다는 것!!!





1. Scalar(스칼라) 타입


스칼라는 single value, 즉 하나의 값으로 표현된다.

다음은 rust가 가지고 있는 스칼라 타입 리스트다.

  • 정수
  • 문자
  • boolean
  • 부동소수점


1-1. 정수


정수형은 크게 unsignedsigned로 나뉜다. 이전 포스팅에서 등장했던 i8이 signed 변수인 것을 참고 URL에 들어가 보면 알 수 있다.

(참고로 unsigned는 u, signed는 i가 붙는다. 뒤에 오는 숫자는 비트를 뜻한다.)


unsigned는 부호가 있는 타입, signed는 부호가 없는 타입을 뜻한다.


1-2. 문자


흔히 문자와 문자열을 함께 진행하는데 문자만 따로 뺀 이유는 java와 같이 rust또한 String은 타입이라기 보다는 collection이기 때문이다.

rust에서 문자(char)형을 사용할 때에는 따옴포(')를 사용한다는 것만 알아두자.


1-3. boolean


두 가지의 선언 방식이 존재 한다.

  • let bool_var = false;
  • let bool_var : bool = true;
false냐 true냐에 따라 달라지는 것이 아니라, 두 번째 방식은 boolean이라는 것을 명시해주는 차이점이 있다.
이 boolean의 경우 제어문을 다룰 때 자세히 알아보자.


1-4. 부동소수점


부동소수점 또한 두 가지로 나뉜다.

  • f32 ( 32비트 )
  • f64 ( 64비트 )
기본 타입의 경우, f64이며 최근 출시되는 CPU에서 32비트와 64비트의 속도비교를 했을 경우 차이가 크지 않기 때문이라고 한다.



2. compound(컴파운드) 타입


다른 타입의 많은 값들을 그룹화 할 수 있도록 해준다.

컴파운트의 경우 두 가지의 타입으로 나뉜다.

  • 배열
  • 튜플


2-1. 배열

  • let var = [0, 1, 2];
배열 선언은 너무나도 쉽고 다른 언어들과 그닥 차이가 없다....ㅎㅎㅎㅎ

rust에서 배열을 사용할 경우는 메모리 사용에 따라 다르다.

heap 영역보다 stack에 쌓기를 원한다면 배열을 사용해도 좋다.

(array보다 list, vector 등과 같은 collection을 훨신 많이 사용하는데, 배열도 배열 나름 좋은 점이 있다고....ㅎㅎㅎㅎㅎ)

프로그램의 질을 높이고 싶다면 array를 사용할지, collection을 이용할지 고민해볼만 하다.

rust 또한 배열의 시작 index는 0부터 시작이다. index에 따른 배열 접근도 간단 하겠죠?ㅎㅎ


2-2. 튜플


하나의 컴파운드 타입에 서로다른 숫자들을 그룹화한 것이다.

 let tup : (i32, f64, u8) = (100, 1.9, 1);

 let (a, b, c) = tup;

 println!("b : {}", b);

 부호 없는 32비트 숫자 100과 64비트 소수 1.9, 부호 있는 8비트 숫자 1을 그룹화해서 저장할꺼야.

 그룹의 각 값들을 각 a, b, c로 저장할꺼야. (구조체)

 b를 출력할꺼야.



감이 슬슬 오기 시작한다. 그 분이 오셨다!!!!!!! 당당당다라당~

튜플을 언제 필요하고 어떻게 응용하면 될지에 대해 생각해보자!!!! ㅎㅎㅎㅎ


구조체를 사용하지 않는 방법을 공개한다.

 let tup : (i32, f64, u8) = (100, 1.9, 1);

 let a = tup.0

 println!("a : {}", a);

 부호 없는 32비트 숫자 100과 64비트 소수 1.9, 부호 있는 8비트 숫자 1을 그룹화해서 저장할꺼야.

 a라는 기본 변수를 선언하고 튜플의 처음 위치한 값을 저장할꺼야.

 a를 출력할꺼야.


튜플 또한 array와 같이 index가 0으로 시작한다는 것 잊지말자!

반응형

'프로그래밍 > RUST' 카테고리의 다른 글

러스트 7 - 제어문과 반복문  (0) 2019.02.23
러스트 6 - 함수  (0) 2019.02.17
러스트 4 - 변수와 타입 #1  (0) 2019.02.16
러스트 3 - Cargo  (0) 2019.02.10
러스트 2 - How to run  (0) 2019.02.09
Comments