MST

星途 面试题库

面试题:Rust中静态生命周期全局变量的初始化

在Rust中,如何定义一个具有静态生命周期的全局变量,并在初始化时使用一个函数的返回值?请给出代码示例并解释其原理。
45.6万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义一个函数,返回一个字符串切片
fn get_static_string() -> &'static str {
    "Hello, global static variable!"
}

// 定义具有静态生命周期的全局变量,使用函数返回值初始化
static GLOBAL_VARIABLE: &'static str = get_static_string();

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

原理解释

  1. 函数定义get_static_string 函数返回一个 &'static str 类型的字符串切片。这里 'static 生命周期表示这个字符串切片的生命周期和程序的生命周期一样长。
  2. 全局变量定义static 关键字用于定义全局变量。GLOBAL_VARIABLE 被定义为 &'static str 类型,其初始值为 get_static_string 函数的返回值。因为 get_static_string 返回的是 &'static str,所以它可以安全地赋值给同样具有 'static 生命周期的全局变量 GLOBAL_VARIABLE
  3. main 函数:在 main 函数中,通过 println! 宏打印出全局变量 GLOBAL_VARIABLE 的值。由于 GLOBAL_VARIABLE 具有 'static 生命周期,在程序运行的任何时候都可以安全地访问它。