@@ -4,19 +4,17 @@ _Ownership_ là một trong những tính năng đặc trưng của Rust, đây
44
55# Ownership là gì?
66
7- Ownership là một concept mới. Tất cả programs đều cần phải quản lý
8- memory mà nó sử dụng trong lúc thực thi. Một vài ngôn ngữ sử dụng
9- garbage collection để tìm và giải phóng bộ nhớ lúc runtime, một số
10- ngôn ngữ khác thì lập trình viên phải tự chi định (allocate) và giải
11- phóng (free) bộ nhớ. Rust đi theo một hướng khác, memory được quản lý
12- bởi một ownership system gồm tập rules được compiler sử dụng để kiểm
13- tra (check) lúc compile. Bằng cách này thì Rust ép chúng ta viết code theo một
14- cách an toàn memory-safe, Rust sẽ bắt lỗi ở lúc complie.
15- Càng hiểu được concept của ownership, thì dần
16- dần chúng ta có thể viết được code an toàn và hiệu quả hơn.
17-
18- Để tìm hiểu kỹ hơn về Ownership, bạn có thể đọc Rust Book tại
19- đây cực kỳ chi tiết:
7+ ** Ownership** là một khái niệm mới. Tất cả các chương trình đều cần phải quản lý
8+ bộ nhớ mà chúng sử dụng trong quá trình thực thi. Một số ngôn ngữ sử dụng garbage collection
9+ để tìm và giải phóng bộ nhớ trong thời gian chạy, trong khi một số ngôn ngữ khác yêu cầu
10+ lập trình viên tự cấp phát (allocate) và giải phóng (free) bộ nhớ. Rust đi theo một hướng khác,
11+ trong đó bộ nhớ được quản lý bởi một hệ thống ownership với các quy tắc mà trình biên dịch
12+ sử dụng để kiểm tra (check) trong quá trình biên dịch. Bằng cách này, Rust buộc chúng ta
13+ phải viết mã theo cách an toàn cho bộ nhớ, và sẽ phát hiện lỗi ngay trong quá trình biên dịch.
14+ Càng hiểu rõ về khái niệm ownership, chúng ta càng có thể viết mã an toàn và hiệu quả hơn.
15+
16+
17+ Để tìm hiểu kỹ hơn về Ownership, bạn có thể đọc Rust Book tại đây cực kỳ chi tiết:
2018[ https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html ] ( https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html#ownership-rules )
2119
2220### Ownership Rules
@@ -96,10 +94,10 @@ fn main() {
9694}
9795```
9896
99- Trong trường hợp này thì function ` hold_my_vec ` không làm gì ngoài
100- việc take ownership. Có một cách tốt hơn là ** references.** Thay vì
101- để function take ownership, ta có thể cho nó mượn giá trị.
102- Chúng ta sẽ truyền vào một reference — a borrowed value .
97+ Trong trường hợp này, function ` hold_my_vec ` không làm gì ngoài việc nhận ownership.
98+ Có một cách tốt hơn là ** references.**
99+ Thay vì để function nhận ownership, ta có thể cho nó mượn giá trị.
100+ Chúng ta sẽ truyền vào một reference — một giá trị được mượn .
103101
104102``` rust,editable
105103fn hold_my_vec<T>(_: &Vec<T>) {}
0 commit comments