走进 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: 3,541 · Posted: 2020-06-29
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...