บอกว่าฉันมีตัวอย่างต่อไปนี้ ( สนามเด็กเล่น )
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
?