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

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. 

主站蜘蛛池模板: 三亚市| 寻甸| 乌鲁木齐县| 澄城县| 手机| 平果县| 兴安盟| 南召县| 扶沟县| 万山特区| 石台县| 浦北县| 丘北县| 奎屯市| 江城| 昂仁县| 翁源县| 小金县| 新源县| 都兰县| 会理县| 浏阳市| 上高县| 新绛县| 延庆县| 南部县| 那坡县| 敖汉旗| 弥渡县| 灌南县| 台湾省| 福鼎市| 柳林县| 谢通门县| 南丰县| 武邑县| 罗平县| 东丰县| 大竹县| 惠安县| 许昌市|