走进 Rust:常量、变量、可变性、Shadowing
Rust About 1,322 words常量
常量的值不可以修改。
示例:定义名称为CONST_VAR,类型为u8,值为255的常量。
fn shadowing() {
// 常量
const CONST_VAR: u8 = 255;
println!("CONST VAR={}", CONST_VAR);
}
变量
变量是默认不可改变的。
示例:定义名称为x,值为5的变量。
fn main() {
let x = 5;
println!("x={}", x);
// x = 10;
}
mut
使用mut关键字可以修改变量的值。
示例:定义名称为y,值为10,并标记为mut的变量,再修改为20。
fn main() {
let mut y = 10;
println!("y1={}", y);
y = 20;
println!("y2={}", y);
}
Shadowing
英文文档中以Shadowing来命名这个特性,翻译为遮蔽、隐藏、重影等。通过使用相同变量的名称并使用let关键字来复用变量。变量的值可以在下一次的表达式中使用,或者直接覆盖。
Shadowing和mut有区别,使用let关键字后,如果不经意间重复赋值时会在编译时期抛出异常。
示例:定义名称为z,值为20的变量,再此基础上再将z的值累加5,并再次使用let标记变量z,此时得到25,再以此基础累加5用let标记变量,最后等到最终值30。
// z = 30
fn main() {
let z = 20;
let z = z + 5;
let z = z + 5;
println!("z={}", z);
}
还有一个和mut的区别是,如果使用了let关键字,那么系统会再次创建一个新的变量。我们也可以改变该变量的类型,只是重复使用了这个变量名称而已。这样做可以避免space_str和space_len多个变量名的情况。
示例:定义spaces为九个空格,此时的spaces为字符串类型。然后获取spaces的长度并用let标记spaces,此时spaces的类型是整数类型。
fn main() {
let spaces = " ";
println!("space1={}", spaces);
let spaces = spaces.len();
println!("space2={}", spaces);
}
如果使用mut来改变类型值,将得到mismatched types异常。
let mut spaces = " ";
spaces = spaces.len();
//异常信息
error[E0308]: mismatched types
--> src\main.rs:25:14
|
25 | spaces = spaces.len();
| ^^^^^^^^^^^^ expected `&str`, found `usize`
Views: 4,206 · Posted: 2020-06-29
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...