IB-Rust-变量&可变类型

Gabrielle Lv5

Codes in lesson2

一、可变 & 不可变变量(Mutable & Immutable)

Rust 的变量默认不可改变(immutable),如果想改变,需要声明可变变量(mutable)

1、声明不可变变量

1
let x = 5;

2、声明可变变量

1
2
let mut x = 5;
x = 6;

二、常量(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.