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

支付宝手机网站seo营销推广公司

支付宝手机网站,seo营销推广公司,做淘宝优惠券网站要多少钱,专做律所网站13.4.0. 写在正文之前 Rust语言在设计过程中收到了很多语言的启发,而函数式编程对Rust产生了非常显著的影响。函数式编程通常包括通过将函数作为值传递给参数、从其他函数返回它们、将它们分配给变量以供以后执行等等。 在本章中,我们会讨论 Rust 的一…

13.4.0. 写在正文之前

Rust语言在设计过程中收到了很多语言的启发,而函数式编程对Rust产生了非常显著的影响。函数式编程通常包括通过将函数作为值传递给参数、从其他函数返回它们、将它们分配给变量以供以后执行等等。

在本章中,我们会讨论 Rust 的一些特性,这些特性与许多语言中通常称为函数式的特性相似:

  • 闭包(本文)
  • 迭代器
  • 使用闭包和迭代器改进I/O项目
  • 闭包和迭代器的性能

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(=・ω・=)
请添加图片描述

13.4.1. 闭包可以捕获它所在的环境

闭包有一项函数所不具备的功能:闭包可以访问定义它的作用域内的变量。

看个例子:

fn main() {let x = 4;let equal_to_x = |z| z == x;let y = 4;assert!(equal_to_x(y));
}

闭包的部分在:

let equal_to_x = |z| z == x;

这样写有的人可能不太能分清===在这里的作用,换一种写法:

let equal_to_x = |z| {z == x;
}

也就是说这个闭包的形参是z,它会和x(也就是4,因为上文定义了x = 4)进行比较,返回布尔类型,如果相等就是true,反之则为false

这里闭包直接访问了同在一个作用域的变量x,这是函数做不到的。

但使用这个特性是有代价的,它会产生内存开销。大多数情况下我们不需要它捕获环境,更不想产生内存开销,所以函数它就不允许从环境中捕获变量,而定义和使用函数就永远不会产生这一类型的开销。

13.4.2. 闭包从所在环境捕获值的方式

闭包通过三种方法来从环境捕获值,这三种与函数获得参数的三种方法一样:

  • 取得所有权,其trait名为FnOnceOnce代表一次,因为闭包不能多次获取并消耗同一个变量,所以它只能被调用一次。
  • 可变借用,其trait名为FnMut
  • 不可变借用,其trait名为Fn

当程序员在创建闭包时,通过闭包对环境值当使用,Rust会推断出具体使用哪个trait:

  • 所有的闭包都实现了FnOnce,因为闭包都至少可以被调用一次
  • 没有移动捕获变量的实现了FnMut
  • 无需可变访问捕获变量的闭包实现了Fn

实际上这三者有包含关系:所有实现了Fn的都实现了FnMut,所有实现了FnMut的都实现了FnOnce

13.4.3. move关键字

在参数列表前使用move关键字,可以强制闭包取得它所使用的环境值的所有权。当将闭包传递给新线程以移动数据使其归新线程所有时,此方法最为有用。

看个例子:

fn main() {let x = vec![1, 2, 3];let equal_to_x = move |z| z == x;println!("can't use x here {:?}", x);let y = vec![1, 2, 3];assert!(equal_to_x(y));
}

使用了move关键字后x的所有权就移动到了闭包的里面,后面就用不了x

13.4.4. 最佳实践

当你指定Fn trait bound之一时,首先用Fn,基于闭包内的情况,如果需要FnOnceFnMut,编译器会再告诉你。

http://www.mmbaike.com/news/27944.html

相关文章:

  • 柴油网站怎么做重庆seo排名软件
  • 网站主机 流量cnzz
  • 自适应网站建设服务哪家好企业网站设计素材
  • 旅游网站专业化建设的要点北京百度推广公司
  • 注册360建筑网平台山东seo网络推广
  • 杭州网站建设是什么seo描述是什么意思
  • 网页设计与制作书广州市口碑seo推广外包
  • 移动网站建设的前景怎么申请域名建立网站
  • 济南网站推广¥做下拉去118cr庆云网站seo
  • 怎么自己给自己的网站做推广免费b站推广网站链接
  • 域名解析后如何建设网站优化大师优化项目有哪些
  • 网站结构与导航设计互联网行业都有哪些工作
  • 手机网站方案磁力狗
  • 云虚拟机搭建wordpress推广优化排名
  • 望野的翻译网络优化app哪个好
  • 广州有什么好玩的游乐场seo独立站
  • 响应式网站区别外包
  • 上海网站建设服务分录企业老板培训课程
  • 优书网所有书单哈尔滨优化网站方法
  • wordpress朗读文章学seo需要学什么专业
  • 海口企业做网站设计潍坊百度网站排名
  • 茂名疫情最新消息seo排名点击 seo查询
  • 互联网公司介绍廊坊自动seo
  • 赛罕区城乡建设局网站企业建站要多少钱
  • 蚌埠做网站的公司哪家好营销比较好的知名公司有哪些
  • 北京网站建设华大谷歌浏览器安卓版
  • 昆明网站建设兼职代写平台
  • 网站建站建设联系电话seo的工作原理
  • 建设个网站seo的搜索排名影响因素有哪些
  • 做网站服务好百度账号人工客服