MST

星途 面试题库

面试题:Rust中静态变量定义的基础方式及注意点

请描述在Rust中定义静态变量的基本语法,并说明静态变量的生命周期和可变性规则,同时给出一个简单的示例代码展示如何定义和使用静态变量。
19.9万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试

定义静态变量的基本语法

在Rust中,定义静态变量使用 static 关键字,语法格式为:

static VARIABLE_NAME: TYPE = VALUE;

例如:

static PI: f64 = 3.141592653589793;

生命周期和可变性规则

  • 生命周期:静态变量的生命周期贯穿整个程序的运行期间。从程序启动开始存在,直到程序结束才销毁。
  • 可变性:默认情况下,静态变量是不可变的。如果需要可变的静态变量,要使用 mut 关键字声明,不过可变静态变量在多线程环境下使用需要额外的同步机制(如 Mutex)来保证线程安全。例如:
static mut COUNTER: i32 = 0;

在使用可变静态变量时,需要通过 unsafe 块来访问和修改,如下:

unsafe {
    COUNTER += 1;
    println!("COUNTER: {}", COUNTER);
}

示例代码

// 定义不可变静态变量
static MESSAGE: &str = "Hello, Rust!";

fn main() {
    println!("{}", MESSAGE);

    // 定义可变静态变量
    static mut COUNT: i32 = 0;
    unsafe {
        COUNT += 1;
        println!("COUNT: {}", COUNT);
    }
}