Tôi cố gắng để khởi một mảng của cấu trúc trong Rust với đoạn mã sau đây:Làm cách nào để triển khai tính năng Sao chép?
enum Direction {
North,
East,
South,
West,
}
struct RoadPoint {
direction: Direction,
index: i32,
}
let data = [RoadPoint { direction: Direction::East, index: 1 }; 4]; // Initialise the array, but failed.
Khi tôi biên dịch nó, nó than phiền rằng Copy
đặc điểm không được thực hiện.
<anon>:44:16: 44:67 error: the trait `core::marker::Copy` is not implemented for the type `main::RoadPoint` [E0277]
<anon>:44 let data = [RoadPoint { direction: Direction::East, index: 1 }; 4];
Ai đó có thể chỉ cho tôi đúng hướng để thực hiện đặc điểm sao chép không?
'# [lấy được (Sao chép, Sao chép)]' là đúng cách, nhưng đối với hồ sơ, nó không phải là điều huyền diệu: Thật dễ dàng để thực hiện những đặc điểm đó một cách thủ công, đặc biệt là trong các trường hợp dễ dàng như của bạn: 'impl Copy for Direction { } impl Clone cho Direction {fn clone (& self) -> Self {* self}} ' – delnan
@delnan Ngay cả khi nó ngắn, tôi nghĩ rằng xứng đáng là một câu trả lời dưới đây. Nó hoàn toàn hợp lệ. – Shepmaster