728x90
반응형
let 변수와 불변성
Rust의 기본 변수는 let으로 불변성을 가진다.
따라서 이미 선언된 변수에 값을 재할당할 경우 컴파일 에러가 발생한다.
1) mut을 통한 가변성 변수 선언
mut 접두어로 가변성 변수 선언이 가능하다.
fn main() {
let mut x = 5;
println!("The value of x is : {x}");
x = 6;
println!("The value of x is : {x}");
}
=============== result ===============
The value of x is : 5
The value of x is : 6
2) Shadowing
이전 변수와 동일한 이름으로 새 변수를 선언할 수 있다.
첫 번째 변수는 두 번째 변수에 의해 가려지고, 컴파일러는 두 번째 변수를 보게 된다.
또한 '중괄호'를 통해 변수를 가릴 수도 있는데, 중괄호 안의 변수는 두 번째 변수 * 2로 계산한 뒤
중괄호가 끝나면 두 번째 변수의 값으로 돌아간다.
let x = 5;
let x = x + 1;
{
let x = x * 2;
println!("The value of x in the inner scope is: {x}");
}
println!("The value of x is: {x}");
=============== result ===============
The value of x in the inner scope is: 12
The value of x is: 6
3) 변수 유형 변경
- shadowing을 통한 변수 선언 : 가능
let spaces = " ";
let spaces = spaces.len();
=============== result ===============
3
- mut을 통한 변수 초기화 : 불가능 (컴파일 에러)
const 상수
let | const | |
mut | 사용 가능 | 사용 불가능 |
정의 범위 | 지역 | 전역/지역 |
- 지역 내에서 같은 이름으로 한 번만 정의 가능(재정의 불가)
- 타입 부연 설명 명시
- 함수의 반환 값 등 런타임 동안에 계산되는 값으로 정의 불가능
- 대문자로 표기
Guessing Game 예제
- 스코프 안으로 라이브러리 가져오기 : input/output 라이브러리는 std로 사용된다.
use std::io;
- .read_line()을 통해 결과값은 받게된다. 이때 결과값은 Result 타입으로 Ok와 Err를 가지고, 성공했을 때는 입력된 값을, 실패했을 때는 에러와 .expect()를 통한 에러메시지를 반환한다.
(에러처리 관련해서는 아직 좀 감이 안잡혀서, 더 공부하면서 뒤에서 다시 한번 다루어야 겠다.)
728x90
반응형
'Language > Rust' 카테고리의 다른 글
[Rust]Ownership 소유권 (0) | 2022.12.23 |
---|---|
[Rust]Control Flow 제어문 (0) | 2022.12.22 |
[Rust]Functions:Statements&Expressions (0) | 2022.12.22 |
[Rust]데이터타입 (0) | 2022.12.22 |
[Rust] 개념 & 설치 (0) | 2022.12.20 |