📝 Rust教程

67篇技术文档
  Rust的生命周期

📅  最后修改于: 2021-01-08 13:55:29        🧑  作者: Mango

锈寿命生存期定义了引用有效的范围。生命周期是隐式的和推断的。Rust使用通用生命周期参数来确保使用有效的实际引用。防止生命周期中的引用晃动当程序尝试访问无效引用时,称为“悬空引用”。指向无效资源的指针称为“悬空指针”。让我们看一个简单的例子:输出:在上面的示例中,外部作用域包含名为“ a”的变量,并且不包含任何值。内部作用域包含变量“ b”,并存储值10。变量“ b”的引用存储在变量“ a”中。当...

  Rust智能指针

📅  最后修改于: 2021-01-08 13:56:21        🧑  作者: Mango

防锈智能指针智能指针是一种数据结构,其行为类似于指针,同时提供诸如内存管理或绑定检查之类的附加功能。智能指针跟踪其指向的内存,还用于管理其他资源,例如Fils句柄和网络连接。智能指针最初是在C++语言中使用的。引用也是一种指针,但是除了引用数据之外,它没有其他功能。引用由'&'运算符。智能指针提供了参考所提供的功能以外的其他功能。智能指针提供的最常见功能是“引用计数智能指针类型”。通过跟踪所有者,...

  锈盒T

📅  最后修改于: 2021-01-08 13:57:28        🧑  作者: Mango

框<T>Box <T>是一个智能指针,它指向在T类型的堆上分配的数据。Box <T>允许您将数据存储在堆而不是堆栈上。Box <T>是一个拥有的指针。除了将数据存储在堆上之外,存储盒没有性能开销。当Box超出范围时,将调用析构函数销毁所有内部对象并释放内存。使用盒子<T>将数据存储在堆上。Box <T>主要用于将数据存储在堆上。让我们通过一个简单的例子来理解这一点:输出:在上面的示例中,a包含指向...

  Rust Deref特性

📅  最后修改于: 2021-01-08 13:58:24        🧑  作者: Mango

解引用<T>Deref <T>特征用于定制解除引用运算符(*)的行为。如果我们实现Deref <T>特征,则可以将智能指针视为参考。因此,在引用上起作用的代码也可以在智能指针上使用。常规参考常规引用是一种指向存储在其他位置的值的指针。让我们看一个创建i32类型值的引用的简单示例,然后将dereference运算符与此引用一起使用。输出:在上面的示例中,a保留i32类型值,20,而b包含对“ a”变...

  锈落特性

📅  最后修改于: 2021-01-08 13:59:20        🧑  作者: Mango

掉落特性当值超出范围时,丢弃特性用于释放文件或网络连接之类的资源。丢弃特性用于在Box <T>指向的堆上释放空间。drop trait用于实现采用可变引用self的drop()方法。让我们看一个简单的例子:输出:程序说明我们已经在Example类型上实现了Drop trait,并在Drop trait实现的内部定义了drop()方法。在main()函数内部,我们创建了Example类型的实例,而在...

  Rust Rc(T)

📅  最后修改于: 2021-01-08 14:00:15        🧑  作者: Mango

钢筋混凝土<T>Rc <T>代表参考计数智能指针。Rc <T>智能指针会跟踪对某个值的引用数,以确定该值是否仍在使用中,并且如果某个值的引用为零,则可以清除该值。Rc <T>智能指针是单线程引用计数指针。使用RC<T>共享数据让我们创建两个共享第三个列表所有权的列表。在上图中,b和c是与第三个列表a共享所有权的两个列表。让我们使用Box <T>类型实现上述方案。输出:在上面的示例中,cons变量由...

  Rust RefCell(T)

📅  最后修改于: 2021-01-08 14:01:13        🧑  作者: Mango

RefCell<T>内部可变性模式是一种在我们具有不可变参考的情况下用于对参考进行变异的模式。 RefCell <T>可用于实现内部可变性。要记住的要点:RefCell <T>表示对其拥有的数据的单一所有权。如果我们使用RefCell <T>,则在运行时强制执行不变式。RefCell <T>主要用于单线程方案,如果在多线程情况下使用,将给出错误。RefCell <T>在运行时检查可变借位。因此,可...