Variables in Rust
Variables and immutability
Let and Immuntability
As mentioned already, Variable is immutable by default in Rust.
If you want mutable variable, you can use 'mut' keyword.
constants
Constant is also immutable varaible.
But There are a few difference between const and let. you can't use 'mut' keyword when you use constant. constant can be declared in any scope. You can declaration constants with 'const' keyword
Constants are valid for the entire time a program runs. (This is useful when you want to convey this variable with meaning of this name).
Shadowing
There is two variable declaration , but variable name is same, repeating the use of the let keyword. This is shadowing.
Difference between shadowing and using 'mut' keyword is that shadowing enables us to peform a few transformations on a value, but after that, it gains immutability again.
Furthermore, by shadowing variable, we can create new variable with same name easily and can change type
Let and Immuntability
As mentioned already, Variable is immutable by default in Rust.
If you want mutable variable, you can use 'mut' keyword.
fn main() {
let mut x = 5;
println!("The value of x is: {}", x);
x = 6;
println!("The value of x is: {}", x);
}
This code will cause error if there isn't mut keyword.constants
Constant is also immutable varaible.
But There are a few difference between const and let.
const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3;
As you can see, Rust naming convention for const is to use all uppercase and underscore between words.Constants are valid for the entire time a program runs. (This is useful when you want to convey this variable with meaning of this name).
Shadowing
There is two variable declaration , but variable name is same, repeating the use of the let keyword. This is shadowing.
fn main() {
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);
}
If you run, 6 will be output in global, 12 in inner scope.Difference between shadowing and using 'mut' keyword is that shadowing enables us to peform a few transformations on a value, but after that, it gains immutability again.
Furthermore, by shadowing variable, we can create new variable with same name easily and can change type
fn main() {
let spaces = " ";
let spaces = spaces.len();
}
If we want to attain same result with mut keyword, it makes compile error.fn main() {
let mut spaces = " ";
spaces = spaces.len();
}
//this occur 'mismatched types'
Rust official docsReference
この問題について(Variables in Rust), 我々は、より多くの情報をここで見つけました https://velog.io/@codernineteen/Variables-in-Rustテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol