// 定义一个函数,返回一个字符串切片
fn get_static_string() -> &'static str {
"Hello, global static variable!"
}
// 定义具有静态生命周期的全局变量,使用函数返回值初始化
static GLOBAL_VARIABLE: &'static str = get_static_string();
fn main() {
println!("{}", GLOBAL_VARIABLE);
}
原理解释
- 函数定义:
get_static_string
函数返回一个 &'static str
类型的字符串切片。这里 'static
生命周期表示这个字符串切片的生命周期和程序的生命周期一样长。
- 全局变量定义:
static
关键字用于定义全局变量。GLOBAL_VARIABLE
被定义为 &'static str
类型,其初始值为 get_static_string
函数的返回值。因为 get_static_string
返回的是 &'static str
,所以它可以安全地赋值给同样具有 'static
生命周期的全局变量 GLOBAL_VARIABLE
。
main
函数:在 main
函数中,通过 println!
宏打印出全局变量 GLOBAL_VARIABLE
的值。由于 GLOBAL_VARIABLE
具有 'static
生命周期,在程序运行的任何时候都可以安全地访问它。