Đi đến nội dung
Lỗi trình biên dịch RustLỗi
E0507

E0507 — Không thể move ra khỏi borrowed reference

Bạn đang cố move một giá trị ra khỏi reference, điều này sẽ khiến reference bị dangling.

rustcargo

Nguyên nhân gây ra lỗi này

Move một giá trị ra khỏi reference sẽ làm mất hiệu lực dữ liệu gốc. Điều này thường xảy ra khi cố trả về trường từ struct đang được mượn hoặc khi pattern matching trên reference.

Cách sửa

Clone giá trị thay vì move nó. Dùng .to_owned() hoặc .clone() để tạo bản sao owned. Dùng ref trong pattern matching để mượn thay vì move. Trả về reference thay vì owned value.

Tài liệu chính thức

Mã lỗi liên quan