IB-Rust-变量&可变类型
一、可变 & 不可变变量(Mutable & Immutable)
Rust 的变量默认不可改变(immutable),如果想改变,需要声明可变变量(mutable)
1、声明不可变变量
1 | let x = 5; |
2、声明可变变量
1 | let mut x = 5; |
二、常量(Constants)
Rust 中用 const 关键字定义一个常量,定义时需要指定其数据类型
常量的特点:
- 必须指定数据类型
- 常量名使用大写字母,否则会 warning
- 必须使用常量表达式赋值,即编译期能计算出的值
- 不支持重定义(遮蔽)
常量与不可变变量的区别?
- 常量使用 const 声明,不可变变量使用 let 声明
- 常量的值不能在运行时改变,不可变变量在运行期才确定
- 常量不可修改,不可变变量可通过重定义(shadowing)修改
- 常量必须声明类型
- 常量必须使用大写字母
三、静态变量
- 静态变量使用 static 关键字声明,在编译时分配内存,并在程序运行期间一直存在
- 静态变量可以在整个程序中共存,并可以在多个线程之间共享
- 静态变量的值在运行期间不会改变,常用于存储程序的全局状态
静态变量与常量的异同
相似性:
- 名称要求使用大写,否则 warning
- 必须指定类型
- 必须使用常量表达式赋值,即编译期能计算出的值
- 都不支持重定义(shadowing)
不同点:
常量值直接嵌入代码,无独立存储,而静态变量存储在静态内存区,独立占用内存
常量不可变,而静态变量和普通变量一样,默认不可变,但可以通过 mut 关键字定义为可变(必须在 unsafe{} 中)
变量用于数学常数、固定配置,静态变量用于全局状态管理、跨线程共享数据
四、作用域 & 遮蔽(variable & shadowing)
变量绑定在一个作用域(scope)中,即被限定只在一个代码块(block)中生存(live)
变量遮蔽(variable shadowing)即重定义
- Title: IB-Rust-变量&可变类型
- Author: Gabrielle
- Created at : 2025-05-20 17:50:23
- Updated at : 2025-05-21 15:31:50
- Link: https://zoella-w.github.io/2025/05/20/60-IB-Rust-变量&可变类型/
- License: This work is licensed under CC BY-NC-SA 4.0.