Rust所有权
首先我们需要了解什么是所有权。Rust的核心特性就是所有权。所有程序在运行的时候,都必须管理它们使用计算机内存的方式。而Rust就是使用了所有权的系统来管理内存,其中包含了一组编译器在编译时检查的规则。最重要的是,这么一种运行方式,并不会减慢程序的运行速度。 Stack 和 Heap (栈内存 和 堆内存) 在运行的时候,Stack和Heap都是可以使用的内存,但是两者在结构上是不一样的。 Stack是按照值的接收顺序来存储,按照相反的顺序将它们移除(LIFO, last in first out) 添加数据叫做压入栈,而移除数据叫做弹出栈 所有的存储在Stack上的数据必须拥有已知的固定的大小。 编译时大小未知的数据,或运行大小可能发生变化的数据必须存放在heap上。 Heap内存组织性差一些:当你把数据放入heap时,你会请求一定数量的空间。而操作系统会给出足够大的空间,并把它标记为在用,返回一个指针,也就是这个空间的地址。这个过程称为”分配” 所有权规则 每一个值都有一个变量,这个变量是该值的所有者 每一个值同时只能有一个所有者 当所有者超出作用域(Scope),该值将被删除。