第一章 不可变的变量

  • 不可变的变量

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

rust 复制代码
fn main() {

    let x = 5;

    println!("x的值是: {}", x);

    x = 6;

    println!("x的值是: {}", x);

}

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

bash 复制代码
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更改为可以修改的变量。

rust 复制代码
fn main() {

    let mut x = 5;

    println!("x的值是: {}", x);

    x = 6;

    println!("x的值是: {}", x);

}

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

bash 复制代码
   Compiling lession_01_02 v0.1.0 (D:\projects\rust\rust_learn\lession_01_02)

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.70s

     Running `target\debug\lession_01_02.exe`

x的值是: 5

x的值是: 6

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

相关推荐
Xpower 17几秒前
OpenClaw Token 优化的技术方案与实践:OpenSpace 自进化 Skill 引擎
java·开发语言·人工智能
杨凯凡几秒前
【022】JVM 运行时数据区与对象创建
java·jvm·后端
南宫萧幕1 分钟前
基于最优控制理论的 HEV 能量管理:从物理建模到 VMD-PPO 强化学习环境构建
开发语言·人工智能·matlab·simulink·控制
虎子_layor2 分钟前
Headless Chrome 该退休了?Obscura 正在给 AI Agent 换浏览器底座
前端·人工智能·后端
froginwe113 分钟前
Memcached get 命令详解
开发语言
李日灐3 分钟前
<4>Linux 权限:从 Shell 核心原理 到 权限体系的底层逻辑 详解
linux·运维·服务器·开发语言·后端·面试·权限
renhongxia15 分钟前
计算机视觉实战:图像去噪模型训练与应用
开发语言·人工智能·机器学习·计算机视觉·prompt
Victor3566 分钟前
MongoDB(100)如何解决性能瓶颈?
后端
寒秋花开曾相惜6 分钟前
(学习笔记)4.1 Y86-64指令集体系结构(4.1.6 一些Y86-64指令 )
linux·运维·服务器·开发语言·笔记·学习·安全
神奇小汤圆7 分钟前
面试官:“线上突然大量报错,你先查什么?” 我:“先查今天谁发了版” 面试官:......
后端