Да, это так.
В вашем случае просто удалите mut
, потому что статические глобальные переменные безопасны для доступа, потому что они не могут быть изменены и, следовательно, не страдают от всех плохих атрибутов, таких как несинхронизированный доступ.
static I: i64 = 5;
static J: i64 = I + 3;
fn main() {
println!("I: {}, J: {}", I, J);
}
Если вы хотите, чтобы они были изменяемыми, вы можете использовать unsafe
для доступа к небезопасной переменной (в данном случае I
).
static mut I: i64 = 5;
static mut J: i64 = unsafe { I } + 3;
fn main() {
unsafe {
println!("I: {}, J: {}", I, J);
}
}