Rust에서 변수 만들기 및 사용

완료됨

개발자는 데이터 작업을 위한 컴퓨터 프로그램을 작성합니다. 데이터를 수집, 분석, 저장, 처리, 공유 및 보고합니다. 변수를 사용하여 나중에 코드에서 참조할 수 있는 명명된 참조에 데이터를 저장합니다.

variables

Rust에서는 키워드 let으로 변수를 선언합니다. 각 변수마다 고유한 이름이 있습니다. 변수가 선언되면 값에 바인딩되거나 나중에 프로그램에서 해당 값이 바인딩될 수 있습니다. 다음 코드는 라는 이름이 a_number인 변수를 선언합니다.

let a_number;

a_number 변수는 아직 값에 바인딩되어 있지 않습니다. 변수에 값을 바인딩하도록 이 문을 수정할 수 있습니다.

let a_number = 10;

참고

키워드 다른 프로그래밍 언어처럼 fnlet 같은 특정 키워드는 Rust에서만 사용하도록 예약됩니다. 키워드는 함수 또는 변수 이름으로 사용할 수 없습니다.

다른 예를 살펴보겠습니다. 다음 코드는 두 개의 변수를 선언합니다. 첫 번째 변수는 선언되었지만 값에 바인딩되지 않았습니다. 두 번째 변수는 선언되었고 값에 바인딩되었습니다. 프로그램 후반부에서 첫 번째 변수가 값에 바인딩됩니다. 이 코드는 println! 매크로를 호출하여 변수 값을 표시합니다.

// Declare a variable
let a_number;
    
// Declare a second variable and bind the value
let a_word = "Ten";
    
// Bind a value to the first variable
a_number = 10;

println!("The number is {}.", a_number);
println!("The word is {}.", a_word);

이 예에서는 다음을 출력합니다.

The number is 10.
The word is Ten.

println! 매크로를 호출하여 바인딩되기 전에 a_number 변수 값을 표시하려고 하면 컴파일러가 오류를 반환합니다.

이 오류 메시지는 Rust Playground에서 직접 확인할 수 있습니다. 실행 단추를 선택하여 코드를 실행합니다.

변경 불가 및 변경 가능

Rust에서는 기본적으로 변수 바인딩을 변경할 수 없습니다. 변수를 변경할 수 없는 경우 값을 이름에 바인딩한 후에는 해당 값을 변경할 수 없습니다.

예를 들어 이전 예제의 a_number 변수 값을 변경하려고 하면 컴파일러에서 오류 메시지를 표시합니다.

// Change the value of an immutable variable
a_number = 15;

이 변경을 직접 시도하여 Rust Playground에서 에러 메시지를 확인할 수 있습니다.

값을 변경하려면 먼저 mut 키워드를 사용해 변수 바인딩을 변경할 수 있게 해야 합니다.

// The `mut` keyword lets the variable be changed
let mut a_number = 10; 
println!("The number is {}.", a_number);

// Change the value of an immutable variable
a_number = 15;
println!("Now the number is {}.", a_number);

이 예에서는 다음을 출력합니다.

The number is 10.
Now the number is 15.

변수 a_number를 변경할 수 있기 때문에 이 코드는 오류 없이 컴파일됩니다.

변수 섀도잉

기존 변수의 이름을 사용하는 새 변수를 선언할 수 있습니다. 새 선언으로 새 바인딩이 생성됩니다. 새 변수는 이전 변수를 섀도잉하므로 Rust에서는 이 작업을 "섀도잉"이라고 합니다. 이전 변수는 여전히 존재하지만 이 범위에서는 더 이상 참조할 수 없습니다.

다음 코드는 섀도잉 사용을 보여줍니다. 이름이 shadow_num인 변수를 선언합니다. 각 let 작업으로 이전 변수 바인딩을 섀도잉하는 동안 shadow_num라는 새 변수를 생성하므로 변수를 변경 가능으로 정의하지 않습니다.

// Declare first variable binding with name "shadow_num"
let shadow_num = 5;

// Declare second variable binding, shadows existing variable "shadow_num" 
let shadow_num = shadow_num + 5; 

// Declare third variable binding, shadows second binding of variable "shadow_num"
let shadow_num = shadow_num * 2; 

println!("The number is {}.", shadow_num);

출력을 추측할 수 있나요? Rust Playground를 방문하여 이 예제를 실행하세요.

지식 점검

다음 질문에 대답하여 배운 내용을 확인하세요. 각 질문에 대해 하나의 대답을 선택한 다음, 답변 확인을 선택합니다.

1.

변수를 선언하고 값을 바인딩하는 Rust 문은 무엇인가요?

2.

변수의 값을 변경할 수 있도록 하는 데 사용되는 Rust 키워드는 무엇인가요?