(done) 速通 rustlings(7) 全局变量/常量

RUST 中,let 不能用于声明全局变量

全局常量必须显示声明类型

rust 复制代码
// The type of constants must always be annotated.
const NUMBER: u64 = 3;

fn main() {
    println!("Number: {NUMBER}");
}

另一种全局 "常量" 声明方式是使用 static,默认只读。

若使用 static mut,则是可变全局变量,由于可变全局变量容易造成别名/并发问题,必须使用 unsafe 块访问。

rust 复制代码
static GREETING: &str = "hello";       // 只读全局
static mut COUNTER: i32 = 0;           // 可变全局,需要 unsafe

fn incr() {
    unsafe {
        COUNTER += 1;                  // 修改时要显式不安全
    }
}

fn main() {
    println!("{GREETING}");
    unsafe { println!("count = {COUNTER}"); }
    incr();
}

使用 static 声明的全局常量和使用 const 声明的全局常量区别如下:

相关推荐
Amos_Web19 小时前
Solana开发(1)- 核心概念扫盲篇&&扫雷篇
前端·rust·区块链
golang学习记1 天前
VS Code官宣:全面支持Rust!
开发语言·vscode·后端·rust
叹一曲当时只道是寻常1 天前
Tauri v2 + Rust 实现 MCP Inspector 桌面应用:进程管理、Token 捕获与跨平台踩坑全记录
开发语言·后端·rust
怪我冷i2 天前
Rust错误处理之unwrap
rust·cloudflare·unwrap
楚国的小隐士2 天前
为什么说Rust是对自闭症谱系人士友好的编程语言?
java·rust·编程·对比·自闭症·自闭症谱系障碍·神经多样性
Tomhex3 天前
Rust智能指针使用指南
rust
AI自动化工坊3 天前
Claw Code技术深度解析:Python+Rust混合架构的设计与实现
开发语言·人工智能·python·ai·架构·rust·开源
web前端进阶者4 天前
Rust初学知识点快速记忆
开发语言·后端·rust
一只幸运猫.4 天前
Rust实用工具特型-Clone
开发语言·后端·rust
咚为4 天前
深入浅出 Rust 内存顺序:从 CPU 重排到 Atomic Ordering
开发语言·后端·rust