面试题答案
一键面试定义静态变量的基本语法
在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);
}
}