У меня есть этот код:
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?