728x90
나처럼 찍먹하는 사람들한테는 가장 재미있는 부분인 문법이다. 외국어 배울때 알파벳만 배우는 거랑 비슷하다.
1. 변수와 가변성
러스트의 변수는 기본적으로 immutable(불변)하다.
- 기본적으로 값이 어디서 어떻게 바뀔지 추적할 필요가 없다고 한다.
- mut이라는 키워드를 추가하면 mutable(가변) 변수를 생성할수 있다. 이 변수는 코드 내에서 값이 바뀔 것이라고 명시적으로 전달한다.
- "3. 추리게임 만들기"에서 mut 이라는 키워드를 사용했다.
- 상수(const)와는 다르다.
상수
- 상수는 항상 불변이므로 mut와 함께 사용할수 없다.
- 상수는 전역스코프를 포함해서 어떤 스코프에서도 선언 가능하다.
- 상수는 반드시 상수 표현식으로만 설정될수 있다.런타임으로 계산하는,변수나 함수 반환값이 들어간 식으로 표현하면 안된다.(하드코딩 값)
섀도잉: 새 변수를 이전 변수명과 같은 이름으로 선언하는것
- 스스로를 다시 가리거나(shadowed) 스코프가 끝날때까지 변수명을 가린다.
- let 키워드 없이 재할당을 하려고 하면 컴파일 에러가 발생한다. let을 써서 재할당하면 immutable 변수를 다시 만들어내는 것이다. -> shadow
- 스코프안에서는 새로운 변수로 가려지고(shadow) 스코프가 끝나면 바깥 스코프의 변수가 다시 보인다.
- mut 변수와 다르다.
- 섀도잉은 let으로 재할당을 하는 것이므로 다른 타입의 값을 저장할수 있다. mut는 처음 지정된 타입만 저장이 가능하다.
2. 데이터 타입
스칼라 타입
- 정수
- signed / unsigned
- 8bit, 16bit, 32bit, 64bit, 128bit
- isize, usize: 아키텍처에 따른 크기
- 부동소수점
- (signed) f32, f64
- f32: single-precision
- f64: double-precision
- (signed) f32, f64
- 수치연산
- +
- -
- *
- /
- 정수 나눗셈은 가장 가까운 정숫값으로 버림
- %
- 부울값: true, false
- 문자(char)
- c, c++과 같이 문자와 문자열 리터럴(String)이 구분됨.
복합 타입
- 튜플: 요소 별 다른 타입 사용 가능, 선언 후 길이 고정
- destructing(구조 해체): 튜플을 분리된 변수로 나누는 것
- 배열: 같은 타입의 요소 사용. 선언 후 길이 고정
- 스택 사용
- 벡터와 다름
뭔가 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 |