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 ...
随机推荐
- 代码依赖包安全漏洞检测神器 —— Dependency Check
目前各个企业对于应用的安全越来越重视,而解决应用漏洞的本质是从代码安全抓起.通常关于代码的安全问题有两类:代码本身的安全问题和代码依赖包存在的安全问题.对于代码本身的安全问题,我们可以通过静态代码分析 ...
- 推荐一个C#轻量级矢量图形库
推荐一个轻量级矢量图形库,可用于生成 PDF.SVG.PNG等. 01 项目简介 VectSharp 是一个功能强大的 C# 库,专门用于创建矢量图形,包括文本,不依赖任何第三方,支持跨平台运行,包括 ...
- 解决phpmyadmin导入MYSQL数据库限制大小为50M的问题
有时候想导入的数据库太大.但是遭到的限制 解决phpmyadmin导入MYSQL数据库限制大小为50M的问题 转载于:https://www.cnblogs.com/wesky/p/10609340. ...
- Qt编写可视化大屏电子看板系统32-模块10大屏地图
一.前言 大屏地图模块采用浏览器模块+echart组件,Qt自带了webkit或者webengine模块,其中在win上mingw编译器的Qt5.6以后的版本,没有了浏览器模块,这个就需要用第三方的浏 ...
- Qt音视频开发系列文章导航
文章 链接 1-vlc解码播放 https://qtchina.blog.csdn.net/article/details/107742836 2-vlc回调处理 https://qtchina.bl ...
- [转]关于opencv4.0中“未定义标识符cvNamedWindow”的解决方法
这个问题困扰了很久,在网上找了很多方法,但是都没用, 比如:"在代码开头加入头文件#include <opencv2/highgui/highgui_c.h>"之类的方 ...
- 利用Navicat向MySQL数据库中批量插入多条记录的方法
利用Navicat向MySQL数据库中批量插入多条记录的方法: 1.执行包含多条记录的SQL脚本 当VALUES后面的值与表中的字段相比,缺少某些字段时,可采用指定相应的字段名的方式批量插入数据: I ...
- Docker 多平台打包错误
1. Multi-platform build is not supported for the docker driver. 问题 因为 Docker 默认使用的 builder 不支持多架构构建镜 ...
- LOL(英雄联盟) API 接口
/*LOL(英雄联盟) API 接口 By wgscd /*LOL(英雄联盟) API 接口 By wgscd QQ:1009374598 */ GET https://127.0.0.1:58182 ...
- 项目PMP之八项目质量管理
项目PMP之八--项目质量管理 一.定义:以执行组织的名义支持过程的持续改进活动 核心理念:兼顾项目管理和可交付成果两方面 质量影响程度(代价由大到小):客户发现缺陷 > 交付前检测和纠正缺 ...