读Rust程序设计语言 - 03

语言/Rust

变量与可变性 - 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()
}

  • 使用的好处 不需要另外命名
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。