官术网_书友最值得收藏!

Shared ownership

Ownership and borrowing are fundamental concepts in Rust; they are the reason no runtime garbage collection is required. As a quick primer: how do they work? In short: scopes. Rust (and many other languages) use (nested) scopes to determine the validity of a variable, so it cannot be used outside of the scope (like a function). In Rust, these scopes own their variables, so they will be gone after the scope finishes. In order for the program to move around values, it can transfer ownership to a nested scope or return it to the parent scope. 

For temporary transfers (and multiple viewers), Rust has borrowing, which creates a reference back to the owned value. However, these references are less powerful, and sometimes more complex to maintain (for example, can the reference outlive the original value?), and they are probably the reason why the compiler complains.

In this recipe, we are getting around this problem by sharing ownership using a reference counter that only drops the variable after the counter reaches zero. 

主站蜘蛛池模板: 桃园县| 榆树市| 沿河| 裕民县| 丰宁| 烟台市| 昌吉市| 都江堰市| 丽水市| 杭州市| 崇明县| 密山市| 广德县| 绥江县| 聂拉木县| 中宁县| 乌兰浩特市| 华池县| 武义县| 平湖市| 昌黎县| 凤山市| 南川市| 蕉岭县| 南汇区| 宜昌市| 敖汉旗| 阆中市| 清水河县| 华阴市| 正镶白旗| 西和县| 额尔古纳市| 崇信县| 浦江县| 桦南县| 浦北县| 奉节县| 宜宾市| 泰宁县| 方城县|