rust 学习之旅二,关键字和保留字
当前,以下关键字具有所描述的功能。
as-执行原始类型转换,消除包含项目的特定特征的歧义,或在useand extern crate语句中重命名项目
async-返回a Future而不是阻塞当前线程
await-暂停执行直到a的结果Future准备好
break -立即退出循环
const -定义常量项目或常量原始指针
continue -继续进行下一个循环迭代
crate -链接一个外部板条箱或一个宏变量,该变量代表定义宏的板条箱
dyn -动态分配给特征对象
else-回退if并if let控制流程构造
enum -定义一个枚举
extern -链接外部板条箱,函数或变量
false -布尔型假文字
fn -定义函数或函数指针类型
for -循环遍历迭代器中的项目,实现特征或指定更高级别的生存期
if -根据条件表达式的结果进行分支
impl -实现固有或特征功能
in- for循环语法的一部分
let -绑定变量
loop -无条件循环
match -将值匹配到模式
mod -定义一个模块
move -使封包对其所有捕获物拥有所有权
mut -表示引用,原始指针或模式绑定中的可变性
pub-表示结构字段,impl块或模块中的公共可见性
ref -通过引用绑定
return -从函数返回
Self -我们正在定义或实现的类型的类型别名
self -方法主题或当前模块
static -持续整个程序执行的全局变量或生命周期
struct -定义一个结构
super -当前模块的父模块
trait -定义一个特征
true -布尔值真实文字
type -定义类型别名或关联的类型
unsafe -表示不安全的代码,功能,特征或实现
use -将符号纳入范围
where -表示约束类型的子句
while -根据表达式的结果有条件地循环
保留以备将来使用的关键字
以下关键字没有任何功能,但被Rust保留,以备将来使用。
abstract
become
box
do
final
macro
override
priv
try
typeof
unsized
virtual
yield
原始标识符
原始标识符是一种语法,可让您在通常不允许使用的关键字中使用关键字。您可以通过在关键字前面加上来使用原始标识符r#。
例如,match是一个关键字。如果尝试编译使用以下函数match作为其名称的函数:
文件名:src / main.rs
fn match(needle: &str, haystack: &str) -> bool {
haystack.contains(needle)
}
您将收到此错误:
error: expected identifier, found keyword `match`
--> src/main.rs:4:4
|
4 | fn match(needle: &str, haystack: &str) -> bool {
| ^^^^^ expected identifier, found keyword
该错误表明您不能将关键字match用作功能标识符。要将其match用作函数名,您需要使用原始标识符语法,如下所示:
文件名:src / main.rs
fn r#match(needle: &str, haystack: &str) -> bool {
haystack.contains(needle)
}
fn main() {
assert!(r#match("foo", "foobar"));
}
此代码将编译而没有任何错误。请注意r#函数名称在其定义中的前缀以及在中调用该函数的位置main。
原始标识符允许您使用选择的任何单词作为标识符,即使该单词恰好是保留关键字。另外,原始标识符使您可以使用以与包装箱不同的Rust版本编写的库。例如,try不是2015年版的关键字,而是2018年版的关键字。如果您依赖使用2015版编写的并且具有try功能的库,则r#try在这种情况下,需要使用原始标识符语法从2018版代码中调用该函数
rust 学习之旅二,关键字和保留字的更多相关文章
- 滴滴Booster移动APP质量优化框架 学习之旅 二
推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) 续写滴滴Booster移动APP质量优化框架学习之旅,上篇文章分 ...
- Hadoop学习之旅二:HDFS
本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...
- 我的AngularJS 学习之旅(二)
记得某位大神说过,"时间就像海绵里的水,挤挤总是有的.".大多时候,与其说我是很忙而没时间去做自己想做的事, 倒不如说是懒得去做罢了. 废话不多说,接前一篇继续吧 3.3 指令(D ...
- artDialog学习之旅(二)之扩展方法详解
名称 描述 核心方法 art.dialog.top 获取artDialog可用最高层window对象.这与直接使用window.top不同,它能排除artDialog对象不存在已经或者顶层页面为框架集 ...
- 我的Go语言学习之旅二:入门初体验 Hello World
好吧,全部的程序猿们都已经习惯了.学习不论什么一门语言,我们都会以Hello World实例開始我们的学习,我也不例外.先来一个简单的样例 打开编辑器 (能够用记事本,我已经习惯 Notepad++了 ...
- dotnet Core学习之旅(二):安装IDE
[重要:文中所有外链不能确保永久有效] >开发工具 高效的开发必然需要一个优秀的集成开发环境(IDE) 对于.NET Core 2.x可以使用包括但不限于以下IDE来进行开发. Visual S ...
- rust 学习之旅一, rust编程环境相关
Mac rust环境 rust安装: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh rust更新: rustup upd ...
- [原创] zabbix学习之旅二:yum安装
对于允许连接公网的环境下,显然通过yum安装是最为简单方便的,也是官网推荐的安装方式.通过这种方式安装,会将php.apache.zabbix本身都一并安装,解决了烦人的依赖包问题. 本文将介绍如 ...
- Spring学习之旅(二)--容器
在 Spring 应用中,所有的对象都在 Spring 容器(container) 里,容器负责对象的创建.配置.装配并管理它们的整个生命周期. Spring 容器 Spring 容器 并不是只有一个 ...
随机推荐
- 重学 Java 设计模式:实战抽象工厂模式
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获!
- canvas锥形渐变进度条
从一个渐变圆角进度条浅出画一个圆 开始 这一切需要从一个(简单)的需求开始,在最开始对设计第一眼看到这张图的时候,感觉挺简单的嘛,直接用echarts饼图模拟出来一个就好了 echarts 然后上ec ...
- Intellij IDEA 2020.1.1 破解 永久有效 亲测100%成功
申明:本教程 WebStorm 破解补丁.激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除. 前言 作为一个有强迫症的码农,怎么能忍受自己的开发工具跟不上潮流呢?笔者以前一直用 ...
- [256个管理学理论]004.鲶鱼效应(Catfish Effect)
鲶鱼效应(Catfish Effect) 来自于大洋彼岸的让你看不懂的解释: 鲶鱼效应(Catfish Effect):鲶鱼在搅动小鱼生存环境的同时,也激活了小鱼的求生能力.鲶鱼效应是采取一种手段或措 ...
- ActiveMQ 笔记(八)高级特性和大厂常考重点
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.可用性保证 引入消息队列之后该如何保证其高可用性? 持久化.事务.签收. 以及带复制的 Leavel ...
- JAVA-蓝桥杯-算法训练-字符串变换
问题描述 相信经过这个学期的编程训练,大家对于字符串的操作已经掌握的相当熟练了.今天,徐老师想测试一下大家对于字符串操作的掌握情况.徐老师自己定义了1,2,3,4,5这5个参数分别指代不同的5种字符串 ...
- Java实现 LeetCode 480 滑动窗口中位数
480. 滑动窗口中位数 中位数是有序序列最中间的那个数.如果序列的大小是偶数,则没有最中间的数:此时中位数是最中间的两个数的平均数. 例如: [2,3,4],中位数是 3 [2,3],中位数是 (2 ...
- Java实现 蓝桥杯VIP 算法训练 sign函数
试题 算法训练 sign函数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定实数x,输出sign(x)的值. sign(x)是符号函数,如果x>0,则返回1:如果x=0, ...
- IDEA,PyCharm系列软件常用快捷键
首先介绍一下小编常用的快捷键: 注释 ctrl+/ 当想看某个类或者某个方法的时候 ctrl+鼠标左键单击 运行程序 ctrl+shift+f10 调试程序 ctrl+shift+f9 撤销 ctrl ...
- python XlsxWriter模块创建aexcel表格
https://blog.csdn.net/qq_41030861/article/details/82148777 安装使用pip install XlsxWriter来安装,Xlsxwriter用 ...