Ownership Review Data in Rust programs have an owner Owner is responsible for cleaning up data Memory management Only one owner (by default) Functions, closures, structs, enums, and scopes are owners Data can be transferred (moved) from one owner to another Function calls, variable reassignment, and closures Possible to “borrow” data from an owner Owner still responsible for clean up Slide này cung cấp một cái nhìn tổng quan về hệ thống sở hữu (ownership) trong Rust, một trong những tính năng quan trọng giúp Rust quản lý bộ nhớ một cách an toàn và hiệu quả mà không cần garbage collector. Nội dung chính của slide:
Dữ liệu trong chương trình Rust có một người sở hữu (owner): Người sở hữu chịu trách nhiệm dọn dẹp dữ liệu:
Quản lý bộ nhớ (Memory management).
Chỉ có một người sở hữu (theo mặc định): Chỉ có một người sở hữu duy nhất của một mảng dữ liệu tại bất kỳ thời điểm nào.
Các chức năng, closures, structs, enums và phạm vi (scopes) là người sở hữu: Khi bạn khai báo một biến bên trong một hàm hoặc một phạm vi, nó sẽ trở thành người sở hữu của dữ liệu đó.
Dữ liệu có thể được chuyển (moved) từ người sở hữu này sang người sở hữu khác: Các cuộc gọi hàm, tái gán biến và closures có thể chuyển quyền sở hữu dữ liệu.
Ví dụ: Khi bạn truyền một biến vào một hàm, quyền sở hữu của biến đó được chuyển sang hàm đó.
Có thể "mượn" dữ liệu từ một người sở hữu: Rust cho phép bạn mượn dữ liệu thay vì chuyển quyền sở hữu, giúp bạn tránh việc sao chép không cần thiết.
Khi bạn mượn dữ liệu, người sở hữu vẫn chịu trách nhiệm dọn dẹp dữ liệu.
Người sở hữu vẫn chịu trách nhiệm dọn dẹp: Mặc dù bạn có thể mượn dữ liệu, người sở hữu ban đầu vẫn chịu trách nhiệm dọn dẹp dữ liệu khi nó không còn được sử dụng.
Tóm tắt
Ownership là một phần quan trọng của Rust, giúp quản lý bộ nhớ một cách an toàn và hiệu quả.
Sự duy nhất: Mỗi mảng dữ liệu chỉ có một người sở hữu tại một thời điểm.
Chuyển quyền sở hữu: Dữ liệu có thể được chuyển giữa các người sở hữu thông qua các cuộc gọi hàm, tái gán biến, và closures.
Mượn dữ liệu: Rust cho phép bạn mượn dữ liệu để sử dụng tạm thời mà không cần chuyển quyền sở hữu.
Trách nhiệm dọn dẹp: Người sở hữu ban đầu vẫn chịu trách nhiệm dọn dẹp dữ liệu, ngay cả khi dữ liệu đó được mượn bởi các phần khác của chương trình.