![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Rust
文章平均质量分 81
Cukor丘克
最坏的结果不过是大器晚成。
展开
-
13_Rust中的枚举
例如,如果请求一个包含项的列表的第一个值,会得到一个值,如果请求一个空的列表,就什么也不会得到。比如,性别就可以是一种枚举类型,性别的值只能是男或者女(那种不伦不类的就算了,这里不谈)。当你去使用性别这种枚举的时候,要么是男,要么是女,不可能两个都取,也不可能一个都不取。安全的认定它的值不为空。这是 Rust 的一个经过深思熟虑的设计决策,来限制空值的泛滥以增加 Rust 代码的安全性。简单来讲,枚举就是一种类型,这种类型中可包含多个值,但是在实际去使用枚举的时候只能使用这么多个值中的其中一个。原创 2022-10-17 23:57:21 · 430 阅读 · 1 评论 -
12_Rust中的方法
定义方法的方式和定义函数的方式类似,也是采用fn作为标识,但是方法比函数多一点的就是需要被包含在impl中。impl是implementation的简写,翻译成中文就是实施,实现的意思。在Rust中所有的方法都必须在对应的结构体的impl中实现,并且方法的第一个参数是&self,其中&self就是指向当前对象的引用,类似于C++中的this、Java中的this、Python中的self.impl 结构体名 {原创 2022-10-15 22:55:12 · 525 阅读 · 0 评论 -
11_Rust中的结构体
因为学Rust的同学基本都是从C/C++过来的所以,对于Rust中的结构体就不用讲得太细,因为基础内容都是差不多的,只是有一些地方会有小小的区别。在前面数据类型的时候介绍过元组,在C++的泛型那块也有元组的出现,如果要追溯到C语言的层次的话,结构体才是复杂数据类型的鼻祖。在复杂数据类型这块,一切都是从C开始演化过来的,包括像C++的类,Java的类也是从C语言的结构体开始。原创 2022-10-13 21:25:55 · 920 阅读 · 0 评论 -
10_Rust中的所有权机制
Rust 的核心功能(之一)是所有权(ownership)。虽然该功能很容易解释,但它对语言的其他部分有着深刻的影响。所有程序都必须管理其运行时使用计算机内存的方式。一些语言中具有垃圾回收机制,在程序运行时有规律地寻找不再使用的内存——例如Java、Python等;在另一些语言中,程序员必须亲自分配和释放内存——例如C、C++等。Rust 则选择了第三种方式:通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查。如果违反了任何这些规则,程序都不能编译。原创 2022-10-10 18:37:45 · 268 阅读 · 0 评论 -
09_Rust中的控制流
控制流其实说的就是分支和循环。原创 2022-10-10 18:32:32 · 489 阅读 · 0 评论 -
08_Rust中的函数
函数在 Rust 代码中非常普遍。main函数是很多程序的入口点,且有且仅有一个。原创 2022-10-08 21:20:11 · 438 阅读 · 0 评论 -
07_Rust中的数据类型
在很多底层语言中,并没有进行这类检查,这样当提供了一个不正确的索引时,就会访问无效的内存。因为学Rust的同学基本都学过C语言了,所以这些非常非常基础的东西就不再累赘了,因为都差不多的,一些差异的内容需要补充的可以到Rust官网中查看。Rust的字符默认使用Unicode编码,C语言一般是使用ASCII编码(这个由编辑器决定,有些地方出现乱码是因为编辑器使用的编码和终端显示的编码不对应导致的)。从C语言的角度看,元组就是简写的结构体类型。元组中的每一个位置都有一个类型,而且这些不同值的类型也不必是相同的。原创 2022-10-08 21:16:36 · 741 阅读 · 0 评论 -
06_变量与可变性
程序一开始,使用一个x变量绑定到5身上,即使用5赋值给x变量(不可变),将x+1的值赋值给名字和x相同的变量(不可变)中,于是原来的x就被遮蔽,在后续的代码中如果使用到了x则是使用第二个x变量,直到该x被遮蔽或者生命周期结束。因为mut是声明变量是可变的,但是它的可变只是值变了,但类型并不能改变,而let隐藏这是使用一个新的变量来遮蔽原来的变量,新的变量当然可以是新的值也可以是新的类型。在Rust中,很奇怪的现象就是,变量默认是不可变的,而常量也是不可以改变的,但是这两个是不一样的东西。原创 2022-10-08 21:15:29 · 179 阅读 · 0 评论 -
05_cargo工具
build指令包含check的功能,即在执行cargo build时,会先把check的功能做了,也就是先检查项目是否可以编译通过,如果编译不通过则打印出错误,如果编译通过了则生成可执行文件。cargo给开发者提供了一个可以检查项目的命令叫check,通过cargo check可以知道我们所写的项目是否可以编译通过,如果项目有错误,则不会通过编译,则不会生成可执行文件。通过cargo new指令生成的Rust项目,则在项目的内部有一个src文件夹——专门用来存储Rust源文件的文件夹。原创 2022-10-05 14:45:11 · 416 阅读 · 0 评论 -
04_Rust的注释
Rust的注释Rust的注释和C语言的一样单行注释// 这是单行注释多行注释/* 这是多行注释 这里面都是注释 编译器会自动跳过这里的内容 这里的内容是给人看的*/文档注释Rust 也有特定的用于文档的注释类型,通常被称为 文档注释(documentation comments),他们会生成 HTML 文档。文档注释使用三斜杠 /// 而不是两斜杆以支持 Markdown 注解来格式化文本。文档注释就位于需要文档的项的之前。具体的看官方文档吧。因为平常用的比较多的注释就单行注原创 2022-10-04 17:35:00 · 170 阅读 · 0 评论 -
03_Rust的第一个程序
处于好奇心打开main.pdb文件,会发现得到的是一堆乱码,其实这个东西是一个二进制文件,类似于使用gcc/g++编译c/c++文件时得到的*.o一样。在Linux上可以使用vim等,在windows上可以使用记事本也可以使用vscode等。根据老传统,编程语言的第一个程序都是打印HelloWorld字样 ,这个传统是从C语言诞生时流传下来的。所以现在我们先使用windows上的记事本来编写一个rust版的HelloWorld程序。好了,这个就是rust的第一个程序,经典二传统的HelloWorld程序。原创 2022-10-04 12:59:14 · 606 阅读 · 0 评论 -
01_Rust环境搭建
Rust是一种兼顾安全性和运行速度的编程语言,目标是代替C++语言。原创 2022-10-04 12:56:45 · 678 阅读 · 0 评论