美文网首页
Rust 所有权

Rust 所有权

作者: RoyLin1996 | 来源:发表于2019-11-04 16:25 被阅读0次

什么是所有权?(Ownership)

Rust 不使用 GC(垃圾回收器)管理内存,而是使用所有权机制进行管理。和 GC 要启动专门的工作线程并且会在运行时中断程序相比,所有权机制是非常轻量级的。

  • 每一个值都有一个对应的被称为所有者的变量
  • 每个值在同一时刻只能存在一个所有者
  • 当所有者超出作用域后这个值就会被删除

当下面的代码运行到右花括号处时,Rust 会自动调用一个名叫 drop 的函数来释放变量 s 占用的内存

{
    let s = String::from("hello"); 
}                            

如果把内存空间比喻成一间房子,那么要进入这间房子就必须拿到它对应的那把钥匙,这把钥匙同一时刻只属于一个人。

当 s1 被赋值给 s2 时将发生移动而不是浅拷贝,也就是说 s1 将变得无效而 s2 获得所有权

let s1 = String::from("hello");
let s2 = s1;

函数调用也会发生所有权移动

fn main() {
    let s = String::from("hello");

    takes_ownership(s); 
    // s 在此处已经无效
}

fn takes_ownership(some_string: String) {
    println!("{}", some_string);
}

相关文章

  • Rust 所有权

    认识所有权 所有权是 rust独特的功能,它让 rust无需垃圾回收即可保证内存安全。 什么是所有权 Rust核心...

  • The Rust programming language 读书

    所有权概念是 Rust 语言的核心功能 Rust 没有垃圾回收(GC)机制 Rust 通过所有权和相关工具保障内存...

  • Rust 所有权

    引用[https://www.runoob.com/rust/rust-ownership.html] 所有权规则...

  • 2019-08-27

    Rust思考 所有权,Rust通过所有权机制移除了垃圾回收器,但是所有权机制绝非坦途,它对开发人员提出了更高的要求...

  • rust ownership

    所有权(系统)是 Rust 最为与众不同的特性,它让 Rust 无需垃圾回收(garbage collector)...

  • Rust中的作用域及作用域的规则

    [TOC] Rust中的作用域及作用域的规则 所有权是 Rust 最独特的特性,它使 Rust 能够在不需要 GC...

  • Rust入坑指南:智能指针

    在了解了Rust中的所有权、所有权借用、生命周期这些概念后,相信各位坑友对Rust已经有了比较深刻的认识了,今天又...

  • Rust 所有权

    什么是所有权?(Ownership) Rust 不使用 GC(垃圾回收器)管理内存,而是使用所有权机制进行管理。和...

  • rust 所有权

    不可变变量 可变变量 所有权三个规格 内存与分配 MOVE COPY 所有权和函数 引用与借用 可变引用的限制 引用悬挂

  • Rust-所有权系统

    今天学习Rust中的所有权系统。按照官方教程所述,所有权系统包含三个部分: 所有权 借用 生命周期 看完发现,C+...

网友评论

      本文标题:Rust 所有权

      本文链接:https://www.haomeiwen.com/subject/lxsdbctx.html