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

网址管理系统wordpress 搜索引擎优化

网址管理系统,wordpress 搜索引擎优化,网站开发与建设个人总结,自己公司网站维护背景 Rust 内存安全基于以下规则:给定一个对象 T,它只能具有以下之一: 对对象有多个不可变引用 (T)(也称为别名 aliasing)对对象有一个可变引用 (mut T)(也称为可变性 mutability)这是由 Rust 编译器强制执行的。然而,在某些情况下,该规则不够灵活(this r…背景 Rust 内存安全基于以下规则:给定一个对象 T,它只能具有以下之一: 对对象有多个不可变引用 (T)(也称为别名 aliasing)对对象有一个可变引用 (mut T)(也称为可变性 mutability)这是由 Rust 编译器强制执行的。然而,在某些情况下,该规则不够灵活(this rule is not flexible)。有时需要对一个对象有多个引用并对其进行修改(it is required to have multiple references to an object and yet mutate it)。 可共享的可变容器的存在是为了以受控的方式允许可变性(permit mutability in a controlled manner),即使存在别名(in the presence of aliasing)也是如此。 Cell、RefCell 和 OnceCell 允许以单线程方式执行此操作,它们不实现 Sync。(如果需要在多个线程之间进行别名和突变 do aliasing and mutation among multiple threads,Mutex、RwLock、OnceLock 或原子类型是执行此操作的正确数据结构)。 介绍 Cell、RefCell 和 OnceCell 类型的值可以通过共享引用(即公共 T 类型)进行mutate,而大多数 Rust 类型只能通过唯一 (mut T) 引用(unique reference)进行mutate。 这些cell类型提供了“内部可变性,interior mutability”(通过 T 可变),与表现出“继承可变性”(仅通过 mut T 可变)的典型 Rust 类型形成鲜明对比。 Cell类型分为三种类型:Cell、RefCell 和 OnceCell。每个都提供了一种不同的方式来提供安全的内部可变性(providing safe interior mutability)。 Cell Cell 通过将值移入和移出cell来实现内部可变性(interior mutability)。也就是说,永远无法获得内部值的 mut T,并且如果不将其替换为其他值,则无法直接获得该值本身。 这两条规则都确保永远不会有多个引用指向内部值。 该类型提供了以下方法: 对于实现 Copy 的类型, get 方法通过复制当前内部值来检索它对于实现 Default 的类型, take 方法用 Default::default() 替换当前内部值并返回替换的值所有的类型拥有: replace:替换当前内部值并返回替换后的值into_inner:此方法消耗 Cell 并返回内部值set:此方法替换内部值,删除替换的值Cell 通常用于更简单的类型,其中复制或移动值不太占用资源(例如数字),并且在可能的情况下通常应优先于其他cell类型。对于较大的no-copy类型,RefCell 提供了一些优势。 RefCell RefCell 使用 Rust 的生命周期来实现“动态借用 dynamic borrowing”,这是一个可以声明对内部值的临时、独占、可变访问的过程(claim temporary, exclusive, mutable access)。 RefCell 的借用是在运行时跟踪的,这与 Rust 的引用类型(native reference)不同,后者在编译时完全静态跟踪。 对 RefCell 内部值的不可变引用 (T) 可以通过 Borrow 获得,可变借用(mutable borrow) (mut T)可以通过 Borrow_mut 获得。 当这些函数被调用时,它们首先验证 Rust 的借用规则是否得到满足:允许任意数量的不可变借用或允许单个可变借用,但决不能两者兼而有之。如果尝试借用违反这些规则,线程将出现panic。 RefCell 对应的 Sync 版本是 RwLock。 OnceCell OnceCell 有点像 Cell 和 RefCell 的混合体(somewhat of a hybrid of Cell and RefCell),适用于通常只需要设置一次的值。这意味着无需移动或复制内部值(与 Cell 不同),也无需运行时检查(与 RefCell 不同)即可获取引用 T。 但是,它的值一旦设置就无法更新,除非有对 OnceCell 的可变引用。 OnceCell提供了以下方法: get:获取内部值的引用set:如果未设置则设置内部值(返回Result)get_or_init:返回内部值,如果需要则初始化它get_mut:提供对内部值的可变引用,仅当有对单元格本身的可变引用时才可用 OnceCell 对应的Sync版本是 OnceLock只能写入一次的 cell (which can be written to only once) 这允许获取对其内部值的共享 T 引用,而无需复制或替换它(与 Cell 不同),并且无需运行时借用检查(与 RefCell 不同)。但是,除非对 Cell 本身具有可变引用,否则只能获得不可变引用。 有关此结构的线程安全版本,请参阅 std::sync::OnceLock use std::cell::OnceCell;fn main(){let cell = OnceCell::new();assert!(cell.get().is_none());let value: String = cell.get_or_init(|| {"Hello, World!".to_string()});assert_eq!(value, "Hello, World!");assert!(cell.get().is_some()); }pub fn get(self) - OptionT获取对内部值的引用,如果Cell为空,则返回Null pub fn get_or_initF
http://www.dnsts.com.cn/news/64906.html

相关文章:

  • 汕头建站服务wordpress 上一页
  • 自己做网站想更换网址天津建设工程交易信息网
  • 网站常用的蓝色商务网站建设毕业设计
  • 怎么利用个人网站化妆品网站建设方案项目书
  • 音乐网站设计外国wordpress+浮框
  • 保定网站建设方案广州网站优化服务
  • 谈谈网站建设创新问题网站开发属于无形资产吗
  • 购物网站服务器硬件配置谷歌外贸平台有哪些
  • 嘉兴的信息公司网站沧州网站网站建设
  • 企业网站建设公司网络直播公司
  • 网站建设设计方案企业做网站还是做平台好
  • 什么叫网站索引asp.net网站开发框架
  • 技术支持 东莞网站建设家装外网访问wordpress全站路径设置
  • dw如何用表格做网站铁岭做网站的公司
  • 制作一个购物网站需要多少钱图片生成链接在线工具
  • 百度上做网站需要钱吗电子贺卡怎么制作
  • 医院网站域名备案买了域名就可以做网站
  • 绛县网站建设泰安北京网站建设公司
  • 什么网站做禽苗好的网站镇江网站建设制作
  • 佛山建设公司网站天河区门户网站教育局
  • 小程序 手机网站微信公众平台注册要钱吗
  • 成品网站源码1688danji6安徽建站优化
  • 企业微信网站建设方案模板下载站长工具pr值查询
  • 外国网站dnswordpress怎么做背景
  • 网站建设好了还要收取维护费网络营销名词解释汇总
  • 做网站难吗?目录搜索引擎网站
  • 滕州盛扬网络公司网站建设推广官网mini1cn下载迷你世界登录
  • 如何制作一个网页网站百度推广自己做网站吗
  • 沈阳市建网站怎么做可以直播的网站吗
  • 网站免费php空间申请网站logo图标