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

E0597 — Giá trị mượn sống không đủ lâu

Một reference tồn tại lâu hơn dữ liệu mà nó trỏ tới.

rustcargo

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

Giá trị được mượn bị drop (giải phóng bộ nhớ) trong khi vẫn còn reference trỏ tới nó. Điều này thường xảy ra khi trả về reference tới biến cục bộ hoặc khi phạm vi borrow vượt quá lifetime của dữ liệu.

Cách sửa

Chuyển dữ liệu lên scope ngoài hoặc trả về owned data thay vì reference. Dùng String thay vì &str khi trả về từ hàm. Kéo dài lifetime của giá trị được mượn cho khớp với lifetime của reference.

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

Mã lỗi liên quan