Rust에서 변수 만들기 및 사용
개발자는 데이터 작업을 위한 컴퓨터 프로그램을 작성합니다. 데이터를 수집, 분석, 저장, 처리, 공유 및 보고합니다. 변수를 사용하여 나중에 코드에서 참조할 수 있는 명명된 참조에 데이터를 저장합니다.
variables
Rust에서는 키워드 let
으로 변수를 선언합니다. 각 변수마다 고유한 이름이 있습니다. 변수가 선언되면 값에 바인딩되거나 나중에 프로그램에서 해당 값이 바인딩될 수 있습니다. 다음 코드는 라는 이름이 a_number
인 변수를 선언합니다.
let a_number;
a_number
변수는 아직 값에 바인딩되어 있지 않습니다. 변수에 값을 바인딩하도록 이 문을 수정할 수 있습니다.
let a_number = 10;
참고
키워드 다른 프로그래밍 언어처럼 fn
및 let
같은 특정 키워드는 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를 방문하여 이 예제를 실행하세요.
지식 점검
다음 질문에 대답하여 배운 내용을 확인하세요. 각 질문에 대해 하나의 대답을 선택한 다음, 답변 확인을 선택합니다.