2.static关键字.rs
生活随笔
收集整理的這篇文章主要介紹了
2.static关键字.rs
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
/*
Rust 全局變量(static):1.定義如下 static NUM: i32 = 100;2.全局變量和常量類似,但是一個(gè)重要的區(qū)別就是,全局變量不會(huì)被內(nèi)聯(lián),在整個(gè)程序中,全局變量只有一個(gè)實(shí)例,也就是說(shuō)所有的引用都會(huì)指向一個(gè)相同的地址。3.定義全局變量使用關(guān)鍵字static,而定義常量使用const,定義普通變量使用let4.和常量不同,全局變量可以定義為可變的(mut)5.因?yàn)槿肿兞靠勺?#xff0c;就會(huì)出現(xiàn)被多個(gè)線程同時(shí)訪問(wèn)的情況,因而引發(fā)內(nèi)存不安全的問(wèn)題,所以對(duì)于全局可變(static mut)變量的訪問(wèn)和修改代碼就必須在unsafe塊中進(jìn)行定義,比如這樣:unsafe {NUM += 1;println!("NUM: {}", NUM);}6.存儲(chǔ)在全局(static)變量中的值必須是Sync,也就是需要實(shí)現(xiàn)Sync trait.7.和常量相同,在定義全局變量的時(shí)候必須進(jìn)行賦值,且賦值必須是在編譯期就可以計(jì)算出的值(常量表達(dá)式/數(shù)學(xué)表達(dá)式),不能是運(yùn)行時(shí)才能計(jì)算出的值(如函數(shù))8.通常來(lái)講,如果需要在兩者之間進(jìn)行選擇,那就選擇常量(const),使用全局變量始終在內(nèi)存中占據(jù)一小塊地方,但是常量則可以運(yùn)行編譯期進(jìn)行優(yōu)化(內(nèi)聯(lián)),不僅可以優(yōu)化自己的crate,而且如果有其他人使用你的crate,也可以進(jìn)行優(yōu)化。
}
*/fn main() {static NUM:i32 = 100;unsafe {println!("Hello, world! --- {}",NUM);}}
?
總結(jié)
以上是生活随笔為你收集整理的2.static关键字.rs的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 1.const关键字.rs
- 下一篇: 3.type关键字.rs