文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

详解Rust中的变量与常量

2022-11-13 18:37

关注

Rust 是一种低级静态类型多范式编程语言,专注于安全性和性能,解决了 C/C++ 长期以来一直在努力解决的问题,例如内存错误和构建并发程序。它具有以下三个优点:

1. 靠语法和编译器技术,做到了更好的内存安全特性;

2. 防止数据竞争的数据所有权模型,并发更容易;

3. 抽象没有性能损失。

变量与可变性

在Rust中,哪怕你声明的是一个变量,在默认情况下也是不可更改的,如果改变量具有更改需求,那么需要使用 let 声明的同时给予其可变性 mut

fn main() {
    let mut x = "rust";
    println!("Hello, world! -- Hello {}", x);

    x = "test";
    println!("Hello, world! -- Hello {}", x);

}

// Hello, world! -- Hello rust
// Hello, world! -- Hello test

常量

常量使用 const 关键字声明,常量在绑定值之后也是不可以进行更改的,但是它与不可变的变量有些区别:

fn main() {
    const X: char = '?';
    println!("Hello, world! -- Hello {}", X);
}

变量隐藏属性

在Rust语言中变量有这样一个特性:隐藏

也就是说我们可以使用同名去声明一个新的变量,新的变量会将之前声明的变量隐藏,或者你可以理解为覆盖?

隐藏和变量mut化是不一样的,根本区别就是mut允许改变之前的变量值,而隐藏特性是再次声明一个同名变量,隐藏之前的变量

在者说,如果我们不使用 let 关键字,那么重新给非 mut 变量赋值会导致编译时的错误,而使用 let 声明的同名变量,也是不可变的

还有一个特性,就是我们使用 let 声明的同名新变量的类型是没有必要和之前的变量数据类型相同的

fn main() {
    let test = 66;
    println!("Hello, world! -- Hello {}", test);

    let test: char = '?';
    println!("Hello, world! -- Hello {}", test);
}

// Hello, world! -- Hello 66
// Hello, world! -- Hello ?

就这个例子我们还可以体验一下Rust的安全以及规范

如果隐藏变量没有被使用,那么编译会报错

fn main() {
    let test = 66;
    let test: char = '?';
    println!("Hello, world! -- Hello {}", test);
}

// help: if this is intentional, prefix it with an underscore: `_test`

Rust提醒我了,如果我们是故意操作,需要在test前加上_ ?

到此这篇关于Rust中的变量与常量的文章就介绍到这了,更多相关Rust变量与常量内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯