Di 'che ho il seguente frammento ( parco giochi )
struct A {
pub val: u32
}
const GLOBAL_A: A = A {val: 2};
fn main() {
let some_a: A = GLOBAL_A;
let other_a: A = GLOBAL_A;
println!("double val = {}", some_a.val + other_a.val);
}
Poiché A
non è né Clone
né Copy
, suppongo che il valore di GLOBAL_A
sarebbe spostato. Ciò non ha molto senso per una const e, come mostrato, non può essere il caso, poiché può essere "spostato" due volte.
Quali sono le regole che consentono al frammento di cui sopra di funzionare considerando A
no Clone
o Copy
?