rust学习笔记(5)
函数
定义为 fn is_divisible_by(lhs: u32, rhs: u32) -> bool {
使用
->指向返回的类型
- 函数定义的位置没有限制
method
针对结构体可以实现对应的方法
struct Point {
x: i32,
y: i32,
}
impl Point {
fn Add(&mut self, other: &Point) {
self.x += other.x;
self.y += other.y;
}
}
如果需要修改自己,需要设置类型为
&mut self
- 需要使用
&借用实例,不然,即使是自己的示例,也会出现被消耗掉的情况
闭包
就是匿名函数,因为在rust中可以使用函数式编程,所以,可以用来创建一个函数对象
|val| val + x
||内部的是接受的变量,比如|i: i32| -> i32 { i + 1 }
后面的是返回的结果,针对多行,需要使用{}包裹
捕获
在代码块的内部定义的闭包函数可以访问代码块的变量内容,访问的方式是自动推断,并且有先后的优先级
优先级别为:不可变引用>可变引用>值本身
rust学习笔记(5)的更多相关文章
- Rust学习笔记1
这是一份不错的rust教程,目前包括4个block和4个project.全部完成后可以用rust实现一个简单的key-value存储引擎. 注意:Windows下rust貌似会遇到一些bug,强烈建议 ...
- Rust学习笔记一 数据类型
写在前面 我也不是什么特别厉害的大牛,学历也很低,只是对一些新语言比较感兴趣,接触过的语言不算多也不算少,大部分也都浅尝辄止,所以理解上可能会有一些偏差. 自学了Java.Kotlin.Python. ...
- Rust学习笔记2
继续继续... 转眼都开学啦... Building Blocks 2 building blocks里讲了一些关于Log structure storage的东西,这也是用于在硬盘上持久化KvSto ...
- Rust学习之旅(读书笔记):枚举 (Enum)
Rust学习之旅(读书笔记):枚举 (Enum) C 语言的枚举类型很弱,不如后来的语言,也不如之前的语言.在 C 语言里面枚举量就是一个名字,更方便的定义常量.今天读了<The Rust Pr ...
- 《Rust权威指南》学习笔记——4. 认识所有权
Rust权威指南学习笔记--认识所有权 什么是所有权 1. 所有权规则 Rust中的每一个值都有一个对应的变量作为它的所有者. 在同一时间内,值有且仅有一个所有者. 当所有者离开自己的作用域时,它持有 ...
- Rust 学习之旅(7):Package,Crate,Module
Rust 学习之旅(7):Package,Crate,Module 这是第 7 章的读书笔记,Cargo Workspace 在第 14 章. Packages and Crates As a pro ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
随机推荐
- 转载 Python 存储与读取HDF5文件
HDF5 简介 HDF(Hierarchical Data Format)指一种为存储和处理大容量科学数据设计的文件格式及相应库文件.HDF 最早由美国国家超级计算应用中心 NCSA 开发,目前在非盈 ...
- 在Android Studio中如何使用真机连接并调试App?
前提:adb环境已经配置 手机端: 1.打开手机开发者权限,"设置" 中找到 "版本号",连续多次点击,会提示打开"开发者".我的是 &qu ...
- 即时通讯技术文集(第11期):IM通信格式的选型及Protobuf专题 [共16篇]
为了更好地分类阅读52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第11 期. [- 1 -] 如何选择即时通讯应用的数据传输格式 [链接] http://www. ...
- 树莓派linux kernel 添加menuconfig菜单选项和编译
https://www.bilibili.com/video/av91990721?zwbcmrpi_defconfig 打开顶层目录下的 Makefile,搜索 %config 找到如下内容: # ...
- Python_图片对比问题汇总
问题一. raise OSError(f"cannot write mode {im.mode} as JPEG") from eOSError: cannot write mod ...
- .NET Core 委托原理解析
.NET Core 委托原理解析 在 .NET Core 中,委托(Delegate)是一种类型安全的函数指针,它允许你将方法作为参数传递给其他方法,或者将方法存储在变量中以便稍后调用.委托在事件处理 ...
- springBoot(1)--初步理解
在没有用SpringBoot之前,我们用spring和springMVC框架,但是你要做很多比如: (1)配置web.xml,加载spring和spring mvc 2)配置数据库连接.配置sprin ...
- Ubuntu更改用户名
网上给出Ubuntu更改用户名步骤: 1.进入Ubuntu,打开一个终端,输入 sudo su转为root用户. 注意,必须先转为root用户!!! 2.gedit /etc/passwd ,找到代表 ...
- Air实现Go程序的热重载(热加载)
简介: air是Go的热加载工具,它可以监听文件或者目录的变化,自动编译,重启程序,提高开发的工作效率. 场景: 在代码修改后需要通过ctrl+c来停止项目,go run的方式来再次重启项目,在开发进 ...
- JavaScript数组(包括上一笔记都是ECMAScript对象),BOM对象,DOM对象,html DOM Enent(事件)
JavaScript数组(包括上一笔记都是ECMAScript对象),BOM对象,DOM对象,html DOM Enent(事件) 1.Arrary; var ret = new Arrary(1,2 ...