STUDY/Rust

Rust - 4. 문법/변수, 데이터 타입

sinawi95 2024. 2. 14. 22:21
728x90

나처럼 찍먹하는 사람들한테는 가장 재미있는 부분인 문법이다. 외국어 배울때 알파벳만 배우는 거랑 비슷하다.


1. 변수와 가변성

러스트의 변수는 기본적으로 immutable(불변)하다.

  • 기본적으로 값이 어디서 어떻게 바뀔지 추적할 필요가 없다고 한다.
  • mut이라는 키워드를 추가하면 mutable(가변) 변수를 생성할수 있다. 이 변수는 코드 내에서 값이 바뀔 것이라고 명시적으로 전달한다.
    • "3. 추리게임 만들기"에서 mut 이라는 키워드를 사용했다.
  • 상수(const)와는 다르다.

상수

  • 상수는 항상 불변이므로 mut와 함께 사용할수 없다.
  • 상수는 전역스코프를 포함해서 어떤 스코프에서도 선언 가능하다.
  • 상수는 반드시 상수 표현식으로만 설정될수 있다.런타임으로 계산하는,변수나 함수 반환값이 들어간 식으로 표현하면 안된다.(하드코딩 값) 

섀도잉: 새 변수를 이전 변수명과 같은 이름으로 선언하는것

  • 스스로를 다시 가리거나(shadowed) 스코프가 끝날때까지 변수명을 가린다.
    • let 키워드 없이 재할당을 하려고 하면 컴파일 에러가 발생한다. let을 써서 재할당하면 immutable 변수를 다시 만들어내는 것이다. -> shadow
    • 스코프안에서는 새로운 변수로 가려지고(shadow) 스코프가 끝나면 바깥 스코프의 변수가 다시 보인다.
  • mut 변수와 다르다.
    •   섀도잉은 let으로 재할당을 하는 것이므로 다른 타입의 값을 저장할수 있다. mut는 처음 지정된 타입만 저장이 가능하다.

2. 데이터 타입

스칼라 타입

  1. 정수
    • signed / unsigned
    • 8bit, 16bit, 32bit, 64bit, 128bit
    • isize, usize:  아키텍처에 따른 크기
  2. 부동소수점
    • (signed) f32, f64
      • f32: single-precision
      • f64: double-precision
  3. 수치연산
    • +
    • -
    • *
    • /
      • 정수 나눗셈은 가장 가까운 정숫값으로 버림
    • %
  4. 부울값: true, false
  5. 문자(char)
    • c, c++과 같이 문자와 문자열 리터럴(String)이 구분됨.
    •  

복합 타입

  1. 튜플: 요소 별 다른 타입 사용 가능, 선언 후 길이 고정
    • destructing(구조 해체): 튜플을 분리된 변수로 나누는 것
  2. 배열: 같은 타입의 요소 사용. 선언 후 길이 고정
    • 스택 사용
    • 벡터와 다름

 

뭔가 c랑 비슷한거같은데 또 새로운 것도 있고


https://doc.rust-kr.org/ch03-00-common-programming-concepts.html

https://doc.rust-kr.org/ch03-01-variables-and-mutability.html

https://doc.rust-kr.org/ch03-02-data-types.html

 

'STUDY > Rust' 카테고리의 다른 글

Rust - 6. 소유권  (0) 2024.02.16
Rust - 5. 문법/함수, 주석, 제어흐름문  (0) 2024.02.15
Rust - 3. 추리게임 만들기 (with python)  (0) 2024.02.14
Rust - 2. 프로젝트 생성  (0) 2024.02.13
Rust - 1. 설치  (0) 2024.02.13