当前位置: 首页 > news >正文

第一章 不可变的变量

  • 不可变的变量

Rust编程语言和其他的编程语言不同,它的变量初始化之后默认是不可以改变它的赋值的。这是Rust编程语言独有的特性。

fn main() {let x = 5;println!("x的值是: {}", x);x = 6;println!("x的值是: {}", x);}

如果运行上面的代码,系统会提示如下的错误信息:

error[E0384]: cannot assign twice to immutable variable `x`--> src\main.rs:4:5|2 |     let x = 5;|         - first assignment to `x`3 |     println!("x的值是: {}", x);4 |     x = 6;|     ^^^^^ cannot assign twice to immutable variable|help: consider making this binding mutable|2 |     let mut x = 5;|         +++For more information about this error, try `rustc --explain E0384`.error: could not compile `lession_01_01` (bin "lession_01_01") due to 1 previous error

上面的信息告诉我们对不可变的变量x进行了两次赋值,如果需要更改x的值,需要使用mut修饰符来对x变量进行修改。即:let mut x = 5;

通过上面的代码运行,我们可以获知下面一些信息:

  1. 变量的定义语法:let 变量名称:变量类型 = 变量初始化值
  2. 变量默认是不可修改的。
  3. 如果变量需要更改为可变的,需要再变量名称前面增加修饰符“mut”。即:let mut 变量名称:变量类型 = 变量初始化值

修改上面的代码,使变量x更改为可以修改的变量。

fn main() {let mut x = 5;println!("x的值是: {}", x);x = 6;println!("x的值是: {}", x);}

执行 cargo run 运行上面的代码,系统给出下面的结果:

   Compiling lession_01_02 v0.1.0 (D:\projects\rust\rust_learn\lession_01_02)Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.70sRunning `target\debug\lession_01_02.exe`x的值是: 5x的值是: 6

系统没有报错,并给出了正确的响应。

http://www.dtcms.com/a/511117.html

相关文章:

  • AUTOSAR 中 Trusted Platform(可信平台)详解
  • 2510rs,rust清单2
  • PINN物理信息神经网络股票价格预测模型Matlab实现
  • 2510rs,rust清单3
  • 用ps做网站方法茂名建站模板搭建
  • 怎么建设vip电影网站wordpress轮播图设置
  • docker 更新layer
  • 基于卷积神经网络的香蕉成熟度识别系统,resnet50,vgg16,resnet34【pytorch框架,python代码】
  • 深度学习YOLO实战:6、通过视频案例,解析YOLO模型的能力边界与选型策略
  • C# 识别图片中是否有人
  • [Power BI] 漏斗图(Funnel Chart)
  • 做网站优化响应式网站 企业模版
  • 视觉学习篇——图像存储格式
  • GB28181视频服务wvp搭建(二)
  • Spring Boot安全配置全解析
  • EasyGBS如何通过流媒体技术提升安防监控效率?
  • 做展览的网站国家免费职业培训平台
  • 农业技术网站建设原则曲阜网站建设
  • 【python】基于 生活方式与健康数据预测数据集(Lifestyle and Health Risk Prediction)的可视化练习,附数据集源文件。
  • C#WPF如何实现登录页面跳转
  • 健康与生活方式数据库编程手册(Python方向教学2025年4月)
  • HarmonyOS测试与上架:单元测试、UI测试与App Gallery Connect发布实战
  • 以太网学习理解
  • 微算法科技(NASDAQ MLGO)标准化API驱动多联邦学习系统模型迁移技术
  • 【Redis】三种缓存问题(穿透、击穿、双删)的 Golang 实践
  • 第1部分-并发编程基础与线程模型
  • 【含文档+PPT+源码】基于SSM的智能驾校预约管理系统
  • python股票交易数据管理系统 金融数据 分析可视化 Django框架 爬虫技术 大数据技术 Hadoop spark(源码)✅
  • 有哪些网站可以自己做加视频做一个购物网站
  • 佛山建站公司模板开发一个物流app需要多少钱