网站加盟代理,wordpress分销商城,房地产营销策划方案,中小企业网站建设中服务器的解决方案是Rust的所有权机制#xff0c;数据允许通过借用的方式#xff0c;在函数的上下文中传递数据。如果离开数据作用的有效范围#xff0c;这个借用就会失效#xff0c;编译就会报错。这也是我们不会将借用(引用#xff09;作为函数的返回值的原因。下面的代码编译失败。
fn cr…Rust的所有权机制数据允许通过借用的方式在函数的上下文中传递数据。如果离开数据作用的有效范围这个借用就会失效编译就会报错。这也是我们不会将借用(引用作为函数的返回值的原因。下面的代码编译失败。
fn create_note() - Note {...
}要将借用的数据传递出其有效范围要么实现Copy trait要么实现Clone trait。 这个时候如果我们要传递的结构体比较大那么这里的内存复制成本就会随之升高性能就会有所损耗。
要解决这个问题可以使用std::rc::Rc。Rc是Reference Counted的缩写它在堆上创建数据其目标是实现数据安全共享。因为Rc的内存是动态在堆上分配的因此这里也会有一些开销。
这里就回到了主题是否使用RcT。如果我们使用所有权借用的机制来传递数据且不会发生数据拷贝那么建议不使用RcT。如果我们的数据会在不同的上下文中频繁传递例如闭包那么建议使用RcT。