Rust에서는 변수를 선언할 때 기본적으로 불변(immutable) 상태입니다. 즉, 한 번 값을 할당하면 변경할 수 없습니다. 그러나, 필요에 따라 가변(mutable) 변수도 선언할 수 있습니다. 이러한 변수의 가변성과 불변성에 대한 기본 원리와 관련 키워드에 대해 설명하겠습니다.
1. 불변 변수 (Immutable Variables)
불변 변수는 기본적으로 값이 변경되지 않는 변수입니다. Rust에서 변수는 기본적으로 불변으로 선언됩니다.
- 선언 및 사용 예제
fn main() {
let x = 5;
println!("The value of x is: {}", x);
// x = 6; // 컴파일 오류: x는 불변 변수로 선언되었기 때문에 값을 변경할 수 없습니다.
}
위 예제에서 let x = 5;
는 불변 변수를 선언하고 값을 5로 할당합니다. 이후에 x
의 값을 변경하려고 하면 컴파일 오류가 발생합니다.
3. 가변 변수 (Mutable Variables)
가변 변수는 값을 변경할 수 있는 변수입니다. 가변 변수로 선언하려면 mut
키워드를 사용합니다.
- 선언 및 사용 예제
fn main() {
let mut x = 5;
println!("The initial value of x is: {}", x);
x = 6;
println!("The updated value of x is: {}", x);
}
위 예제에서 let mut x = 5;
는 가변 변수를 선언하고 값을 5로 할당합니다. 이후에 x
의 값을 6으로 변경할 수 있으며, 변경된 값을 출력할 수 있습니다.
5. 변수의 가변성과 불변성 원리
- 기본 불변성: Rust는 기본적으로 모든 변수를 불변으로 만듭니다. 이는 데이터 경합 및 예기치 않은 값 변경으로부터 보호하여 코드의 안정성과 예측 가능성을 높입니다.
- 가변성 필요 시 명시적 선언: 가변 변수가 필요할 때는
mut
키워드를 사용하여 명시적으로 선언해야 합니다. 이는 가변 변수가 필요한 부분을 명확히 구분할 수 있게 해주며, 코드의 가독성과 유지보수성을 높입니다.
6. 상수 (Constants)
Rust에서는 const
키워드를 사용하여 상수를 선언할 수 있습니다. 상수는 변경될 수 없으며, 프로그램 전체에서 동일한 값을 갖습니다. 상수는 반드시 타입을 명시해야 합니다.
- 선언 및 사용 예제
fn main() {
const MAX_POINTS: u32 = 100_000;
println!("The maximum points are: {}", MAX_POINTS);
}
위 예제에서 const MAX_POINTS: u32 = 100_000;
는 MAX_POINTS
라는 상수를 선언하고 값을 100,000으로 설정합니다. 상수는 프로그램이 실행되는 동안 변경될 수 없습니다.
8. 가변성과 불변성의 예
다음은 가변성과 불변성을 사용하여 변수와 상수를 선언하고 사용하는 예제입니다.
fn main() {
let x = 5; // 불변 변수
println!("The value of x is: {}", x);
let mut y = 10; // 가변 변수
println!("The initial value of y is: {}", y);
y = 15;
println!("The updated value of y is: {}", y);
const MAX_POINTS: u32 = 100_000; // 상수
println!("The maximum points are: {}", MAX_POINTS);
}
이 예제에서는:
x
는 불변 변수로 선언되어 값을 변경할 수 없습니다.y
는 가변 변수로 선언되어 값을 변경할 수 있습니다.MAX_POINTS
는 상수로 선언되어 변경될 수 없습니다.
요약
- 불변 변수: 기본적으로 모든 변수는
let
키워드로 선언되며, 불변(immutable) 상태입니다. - 가변 변수:
mut
키워드를 사용하여 가변(mutable) 변수로 선언할 수 있으며, 값을 변경할 수 있습니다. - 상수:
const
키워드를 사용하여 상수를 선언하며, 반드시 타입을 명시해야 하고, 프로그램 전체에서 값이 변경될 수 없습니다.
Rust의 변수 가변성과 불변성은 코드의 안정성과 예측 가능성을 높여주는 중요한 원칙 중 하나입니다. 이를 통해 데이터 경합 및 예기치 않은 값 변경으로부터 프로그램을 보호할 수 있습니다.
'언어 > Rust' 카테고리의 다른 글
[ Rust ] 러스트는 어떤 언어인가? (0) | 2024.08.27 |
---|---|
[ Rust ] Result Type을 사용해서 반환값 처리하기 (0) | 2024.06.07 |
[ Rust ] 숫자 맞치기 게임 작성하고 실행하기 (0) | 2024.06.07 |
[ Rust ] Cargo로 빌드 하고 실행하기 (0) | 2024.06.07 |
[ Rust ] 설치하고 첫번째 프로그램 작성 및 실행 (0) | 2024.04.21 |