rust常量和变量
const A: u32 = 10_000;
fn main() {
let mut a = 5;
println!("{}", a);
a = 8;
println!("{}", a);
println!("{}", A);
}
一、常量;
1.常量命名:大写。
2.常量可以在任何作用域内进行声明,包括全局作用域;
3.常量必须标明类型,使用const关键字;
4.常量永远不可变;
5.常量只可以绑定到常量表达式,无法绑定到函数的调用结果或者只能在运行时才能计算出的值。
6、在程序运行期间,常量在其声明的作用域内一直有效。
二、变量
不可变变量 let
可变变量 let mut
let 变量名称:u32=变量值;
隐藏:shadowing let x=1;let x=x+1;let x=x*2;
可以使用相同的名字声明新的变量,新的变量就会shadow(隐藏)之前声明的同名变量。
注意:let和let mut是不一样的。
1.如果不使用let关键字,那么重新给非mut的变量赋值会导致编译时错误。
2.使用let声明的同名新变量,它的类型可以与之前不同。
// const A: u32 = 10_000;
fn main() {
let mut x = 1;
// x = x + 1;
x += 1;
println!("{}", x);
}
或者
fn main() {
//演示为可变变量的重新赋值,会改变变量的值。演示变量隐藏 shadowing
let spaces = " ";
// let spsces = spaces.len();
// spaces = spaces.len();
let spaces = spaces.len();
println!("spaces: {}", spaces);
let spaces_str = " ";
let spaces_num = spaces_str.len();
println!("spaces_num: {}", spaces_num);
//可变变量的重新赋值
let mut spaces = 5;
spaces = 10;
println!("spaces: {}", spaces);
}
1.如果不使用let关键字,那么重新给非mut变量赋值会导致编译错误。
2.使用let声明的同名新变量,也是不可变的;
3.使用let声明的同名新变量,它的类型可以与之前的不同。
parse方法和expect方法

浙公网安备 33010602011771号