Скажіть, у мене є такий фрагмент ( майданчик )
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);
}
Оскільки A
це не є ані Clone
нормою Copy
, я б припустив, що значення GLOBAL_A
буде переміщено. Це не має особливого сенсу для const, і як показано, це все одно не може бути, оскільки його можна "перемістити" двічі.
Які правила, що дозволяють вищевказаному фрагменту працювати, враховуючи A
, не є Clone
ні Copy
?