2.static关键字.rs


/*
Rust 全局变量(static):1.定义如下 static NUM: i32 = 100;2.全局变量和常量类似,但是一个重要的区别就是,全局变量不会被内联,在整个程序中,全局变量只有一个实例,也就是说所有的引用都会指向一个相同的地址。3.定义全局变量使用关键字static,而定义常量使用const,定义普通变量使用let4.和常量不同,全局变量可以定义为可变的(mut)5.因为全局变量可变,就会出现被多个线程同时访问的情况,因而引发内存不安全的问题,所以对于全局可变(static mut)变量的访问和修改代码就必须在unsafe块中进行定义,比如这样:unsafe {NUM += 1;println!("NUM: {}", NUM);}6.存储在全局(static)变量中的值必须是Sync,也就是需要实现Sync trait.7.和常量相同,在定义全局变量的时候必须进行赋值,且赋值必须是在编译期就可以计算出的值(常量表达式/数学表达式),不能是运行时才能计算出的值(如函数)8.通常来讲,如果需要在两者之间进行选择,那就选择常量(const),使用全局变量始终在内存中占据一小块地方,但是常量则可以运行编译期进行优化(内联),不仅可以优化自己的crate,而且如果有其他人使用你的crate,也可以进行优化。
}
*/fn main() {static  NUM:i32 = 100;unsafe {println!("Hello, world! --- {}",NUM);}}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部