5
這段代碼有什麼問題?使用AtomicUsize時,const fns是一個不穩定的功能:: new
use std::sync::atomic::AtomicUsize;
static mut counter: AtomicUsize = AtomicUsize::new(0);
fn main() {}
我得到這個錯誤:
error: const fns are an unstable feature
--> src/main.rs:3:35
|>
3 |> static mut counter: AtomicUsize = AtomicUsize::new(0);
|> ^^^^^^^^^^^^^^^^^^^
help: in Nightly builds, add `#![feature(const_fn)]` to the crate attributes to enable
的文檔提到的其他原子INT尺寸是不穩定的,但AtomicUsize
顯然是穩定的。
這樣做的目的是得到一個原子每進程計數器。
原子不需要,也不應該在'static mut'中,它應該是一個普通的'static'。原子操作在修改它們時使用內部可變性。你會發現他們所有的變異方法都使用'&self'作爲第一個參數(一個共享引用)。 – bluss
啊,這是有道理的,因爲他們不需要依賴借閱檢查器。 – Timmmm