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

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. 

主站蜘蛛池模板: 太仆寺旗| 海口市| 洱源县| 申扎县| 平昌县| 攀枝花市| 西城区| 嵊州市| 怀化市| 荣昌县| 徐州市| 孟州市| 兴业县| 绍兴县| 洛川县| 青冈县| 元氏县| 江安县| 浦城县| 梁山县| 疏附县| 锡林浩特市| 满洲里市| 行唐县| 台中市| 东阳市| 三河市| 南投县| 靖宇县| 通河县| 邛崃市| 永吉县| 贵溪市| 阳城县| 长治县| 禹城市| 温泉县| 道真| 嘉禾县| 溧阳市| 古浪县|