读Rust程序设计语言 - 03
2020-08-12 本文已影响0人
在路上的海贼
语言/Rust
变量和可变性
- 在rust中变量是默认不可变的
- 不能对不可变变量进行二次复制(cannot passing twice to immutable variable)
pub fn immutable_var() {
let x = 5;
// 这里会报错
// x = 6;
// {:?} 美化打印代码
println!("the immutable var of x is: {:?}", x)
}
pub fn var() {
let mut x = 5;
x = 6;
println!("the var of x is :{:?}",x)
}pub fn shadowing() {
// 这里在运行的时候会报警告⚠️
let x = 1;
let x = "1";
// 强转&str为u32
let x = 2 * x.to_string().parse::<u32>().unwrap();
println!("shadowing x is :{:?}", x)
}
变量和常量
- 常量使用
const
声明
pub fn constant() {
// 常量强制定义类型
const x: u8 = 1;
// 此处会报错
// x = 2;
println!("{}", x)
}
重复声明同一个变量会更新变量(隐藏)
- 重复声明变量在rust称为变量隐藏
pub fn shadowing() {
// 这里在运行的时候会报警告⚠️
let x = 1;
let x = "1";
// 强转&str为u32
let x = 2 * x.to_string().parse::<u32>().unwrap();
println!("shadowing x is :{:?}", x);
// 隐藏
let spaces = " ";
let spaces = spaces.len();
println!("the spaces length:{}",spaces);
// 这样会报错
let mut spaces = "";
// spaces = spaces.len()
}
- 使用的好处 不需要另外命名