Rust入门-01-变量与可变性

变量(variable)与可变性

  • 变量使用关键字let声明

  • 默认情况下变量时不可变

    fn main() {
       let x = 5;
       println!("The value of x is: {}", x);
       x = 6;
       println!("The value of x is: {}", x);
    }
    

    该程序编译会发生错误

    • 不可以给一个不可变的变量赋值第二个值
  • 在变量前加上mut可以使变量可变

    fn main() {
        let mut x = 5;
        println!("The value of x is: {}", x);
        x = 6;
        println!("The value of x is: {}", x);
    }
    

    该程序可正常编译

常量(constant

  • 常量使用关键字const声明
    • 声明常量时要注明值的类型
  • 常量可以在任意作用域内声明,包括全局作用域
  • 常量默认且始终不可变
  • 命名约定全部字母都使用大写,并使用下划线分隔单词
  • 常量只能设置为常量表达式,而不能是函数调用的结果或是只能在运行时计算得到的值。(?
const THREE_HOURS_IN_SECONDS: u32 = 60 * 60 * 3;

​ 常量名为 THREE_HOURS_IN_SECONDS

遮蔽(shadow

  • 声明一个和前面变量具有相同名称的新变量,即说第一个变量被第二个变量遮蔽
fn main() {
    let x = 5;
    let x = x + 1;
    {
        let x = x * 2;
        println!("The value of x in the inner scope is: {}", x);
    }
    println!("The value of x is: {}", x);
}

输出内容为

The value of x in the inner scope is: 12 

The value of x is: 6
  • 遮蔽时要再次使用let关键字

    • 不可直接向之前的变量赋值(会发生错误
  • 遮蔽即再次使用let关键字创建了一个新的变量(该变量同样不可变),只是该变量重复使用了相同的名称

    • 故可以改变值的类型

      fn main() {
          let spaces = "   ";  //字符串类型
          let spaces = spaces.len();  //数字类型
      }
      

      该程序可正常编译

    • 但不可使用mut关键字更改变量的类型

      fn main() {
          let mut spaces = "   ";
          spaces = spaces.len();   //想要将可变变量
      }
      

      该程序编译会发生错误

posted @   ragworm  阅读(73)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示