Rust_learn_1
Published on 2024-08-06 17:42 in 暂未分类 with solutide

Rust_learn_1

    变量与可变性

    变量

    声明变量使用let关键字,在默认情况下,变量是不可变的(Immutable)

    image-20240806172626179

    为此解决该问题,声明变量时在前面加上 mut,就可以使变量可变

    image-20240806172643913

    常量

    常量(constant),在绑定值之后也是不可变的,但是与不可变的变量有很多区别:

    • 不可以使用mut,常量永远是不变的

    • 声明常量用const关键字,类型必须被标注

      image-20240806172808852

      image-20240806172830448

    • 常量可以在任何作用域中声明,包括全局作用域

    • 常量只可以绑定到常量表达式,无法绑定到函数的调用结果或只能在运行时才能计算出的值

    在程序运行期间。常量在其声明的作用域内一直有效

    shadowing(隐藏)

    可以使用相同的名字声明新的变量,新的变量就会隐藏之前声明的同名变量,在后续代码中这个变量名表示的是新的变量

    shadow 和把变量标记为mut是不同的:

    • 如果不使用let关键字,重新给非mut的变量赋值会导致编译时错误(就是上面所说的变量是不可变的)
    • 而使用let声明的同名新变量,也是不可变的
    • 使用let声明的同名新变量,它的类型可以与之前不同
    let _kk=1;
    println!("{}",_kk);
    let _kk = 2;
    println!("{}",_kk);
    let _xx = "123";
    print_type_of(&_xx); //&str
    let _xx = _xx.len();
    print_type_of(&_xx); //usize
    posted @   solutide  阅读(5)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
    · 没有源码,如何修改代码逻辑?
    · PowerShell开发游戏 · 打蜜蜂
    · 在鹅厂做java开发是什么体验
    · WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
    点击右上角即可分享
    微信分享提示