76 lines
1.4 KiB
Markdown
76 lines
1.4 KiB
Markdown
# 변수
|
|
|
|
## 선언
|
|
|
|
```rust
|
|
let x: i32 = 100;
|
|
```
|
|
|
|
러스트에서는 `let`을 사용해서 변수를 선언 합니다. 변수명 뒤에는 `:`과 함께 자료형을 명시합니다.
|
|
|
|
## 불변성
|
|
|
|
러스트의 변수는 기본적으로 불변(immutable)입니다. 그래서, 한 번 할당된 변수에 새로운 값을 다시 할당할 수는 없습니다.
|
|
|
|
```rust
|
|
let x = 100;
|
|
x = 0; // Compile Error!
|
|
```
|
|
|
|
값이 바뀌어야 하는(mutable) 변수를 선언하려면, `mut`를 사용합니다.
|
|
|
|
```rust
|
|
let mut x = 100;
|
|
```
|
|
|
|
## 새도잉
|
|
|
|
불변 변수에 값을 할당하는 것은 불가능하지만, 같은 이름으로 다시 변수를 선언하는 것은 가능합니다. 이를 shadowing이라고 부릅니다.
|
|
|
|
```rust
|
|
let x = 100;
|
|
let x = 5;
|
|
```
|
|
|
|
## 자료형
|
|
|
|
러스트에는 다음과 같은 원시 자료형이 존재합니다.
|
|
|
|
- i8, i16, i32, i64, i128, isize
|
|
|
|
- u8, u16, u32, u64, u128, usize
|
|
|
|
- f32, f64
|
|
|
|
- bool
|
|
|
|
- String, str
|
|
|
|
|
|
isize와 usize는 CPU의 아키텍쳐에 따라 크기가 달라지는 자료형입니다.
|
|
|
|
## 타입 추론
|
|
|
|
변수명 뒤에 자료형을 생략해도 컴파일러가 자료형을 추론합니다.
|
|
|
|
```rust
|
|
let x = 1; // i32
|
|
let y = 1.0; // f64
|
|
```
|
|
|
|
## 형 변환
|
|
|
|
러스트에서 형 변환은 `as`를 사용합니다.
|
|
|
|
```rust
|
|
let x: f64 = 3.14;
|
|
let y = x as i32;
|
|
```
|
|
|
|
## 상수
|
|
|
|
러스트에서 상수는 `const`를 사용해서 선언합니다.
|
|
|
|
```rust
|
|
const MY_VALUE: i32 = 100;
|
|
``` |