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

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. 

主站蜘蛛池模板: 昆明市| 喀喇沁旗| 岑巩县| 淮安市| 无锡市| 丰台区| 察雅县| 南溪县| 石河子市| 马鞍山市| 定兴县| 灵山县| 长治县| 周至县| 公主岭市| 滦南县| 洪雅县| 盐山县| 龙海市| 洞口县| 仁布县| 许昌市| 昌都县| 中超| 大理市| 志丹县| 贵州省| 扎兰屯市| 林口县| 时尚| 黔西| 德昌县| 江城| 托克逊县| 秦安县| 洱源县| 湖北省| 浦江县| 闵行区| 中宁县| 监利县|