当前位置: 首页 > news >正文

乐陵市人民医院广州优化营商环境条例

乐陵市人民医院,广州优化营商环境条例,上海做网站好的公司有哪些,动态网站后台怎么做智能指针 在各个编程语言中,指针的概念几乎都是相同的:指针是一个包含了内存地址的变量,该内存地址引用或者指向了另外的数据。 在 Rust 中,最常见的指针类型是引用,引用通过 & 符号表示。不同于其它语言&#xf…

智能指针

在这里插入图片描述

在各个编程语言中,指针的概念几乎都是相同的:指针是一个包含了内存地址的变量,该内存地址引用或者指向了另外的数据

在 Rust 中,最常见的指针类型是引用,引用通过 & 符号表示。不同于其它语言,引用在 Rust 中被赋予了更深层次的含义,那就是:借用其它变量的值。引用本身很简单,除了指向某个值外并没有其它的功能,也不会造成性能上的额外损耗,因此是 Rust 中使用最多的指针类型。

而智能指针则不然,它虽然也号称指针,但是它是一个复杂的家伙:通过比引用更复杂的数据结构,包含比引用更多的信息,例如元数据,当前长度,最大可用长度等。总之,Rust 的智能指针并不是独创,在 C++ 或者其他语言中也存在相似的概念。

Rust 标准库中定义的那些智能指针,虽重但强,可以提供比引用更多的功能特性,例如本章将讨论的引用计数智能指针。该智能指针允许你同时拥有同一个数据的多个所有权,它会跟踪每一个所有者并进行计数,当所有的所有者都归还后,该智能指针及指向的数据将自动被清理释放。

引用和智能指针的另一个不同在于前者仅仅是借用了数据,而后者往往可以拥有它们指向的数据,然后再为其它人提供服务。

在之前的章节中,实际上我们已经见识过多种智能指针,例如动态字符串 String 和动态数组 Vec,它们的数据结构中不仅仅包含了指向底层数据的指针,还包含了当前长度、最大长度等信息,其中 String 智能指针还提供了一种担保信息:所有的数据都是合法的 UTF-8 格式。

智能指针往往是基于结构体实现,它与我们自定义的结构体最大的区别在于它实现了 DerefDrop 特征:

  • Deref 可以让智能指针像引用那样工作,这样你就可以写出同时支持智能指针和引用的代码,例如 *T
  • Drop 允许你指定智能指针超出作用域后自动执行的代码,例如做一些数据清除等收尾工作

智能指针在 Rust 中很常见,我们在本章不会全部讲解,而是挑选几个最常用、最有代表性的进行讲解:

  • Box,可以将值分配到堆上
  • Rc,引用计数类型,允许多所有权存在
  • RefRefMut,允许将借用规则检查从编译期移动到运行期进行
http://www.hrbkazy.com/news/55887.html

相关文章:

  • b2b网站建设怎么做常见的网络直接营销有哪些
  • 小程序建站模板成都搜狗seo
  • 上海热门事件北京seo排名厂家
  • 做外贸哪些b2b网站比较有效客户引流的最快方法是什么
  • 在哪个网站里下载的图片可以做展架seo推广多少钱
  • 云主机购买武汉网站seo公司
  • 如何根据网址攻击网站竞价外包
  • 网站图怎么做才能小而清晰度化妆品软文推广范文
  • 佛山信息技术网站开发可口可乐网络营销案例
  • 电子商务网站设计说明百度关键词怎么做排名
  • 海珠做网站浏览器打开是2345网址导航
  • 南山做网站哪家好网站平台有哪些
  • 网站建设怎么打开肇庆网站建设制作
  • 常见网站安全漏洞公司宣传推广方案
  • 做网站是不是也是暴利关键词检测
  • 网站开发功能清单例表班级优化大师是干什么用的
  • 个人电脑做外网网站网上卖货的平台有哪些
  • 云南汽车网络营销北京网站优化方法
  • WordPress小程序论坛西安seo网络推广
  • 小学网站建设工作小组宁德市政府
  • 余姚做企业网站灰色行业推广平台网站
  • 深圳网站建设与网站制作seo与网络推广的区别和联系
  • php网站开发和部署2345系统导航
  • win10本地安装wordpressseo关键词优化策略
  • win2008 建立网站百度指数资讯指数
  • wordpress云标签阿里巴巴seo排名优化
  • 山西搜索引擎优化国内seo做最好的公司
  • 模板网站建设教程视频谷歌独立站seo
  • 网站群建设目标网络推广外包公司
  • html5在网站建设中的公司网站模板设计