У меня есть этот код:
use std::sync::atomic::{AtomicUsize, Ordering};
const SOME_VAR: AtomicUsize = AtomicUsize::new(0);
fn main() {
println!("{}", SOME_VAR.load(Ordering::SeqCst));
println!("{}", SOME_VAR.fetch_add(10, Ordering::SeqCst));
println!("{}", SOME_VAR.load(Ordering::SeqCst));
}
Это печатает 0 0 0
без каких-либо ошибок. В Java я могу использовать final HashMap
и добавлять (k, v)
к нему. В Rust я удивлен, что компилятор не кричит на меня, но также не увеличивает мою атомную ценность. Я здесь что-то не так?
Если я использую static
:
static SOME_VAR: AtomicUsize = AtomicUsize::new(0);
Я получаю результат 0 0 10
. Почему это не работает с const
?