
Rust
文章平均质量分 84
栖林_
一个励志于做全栈工程师的平平无奇大学生,希望在这里留下自己学习的记录
展开
-
Rust包管理与错误处理
对于结构体来说,结构体本身也可以加上pub,能让外部访问,但是其字段依旧是私有的,如果想要访问,也需要pub来声明。可恢复错误,例如说文件读写错误,这个文件有可能被其他程序占用,这是正常的,我们可以通过等待来解决这个问题。在C/C++中,我们通常用整数做返回值来表达函数遇到的错误,但是Rust是通过一个枚举表达的。但是还有一种说逻辑错误导致的,例如数组越界访问,在C++中array是通过异常来表示的。Rust中有一套独特的处理异常情况的机制,和C++中的try还是有很大区别的。原创 2025-04-09 10:58:48 · 726 阅读 · 0 评论 -
Rust切片、结构体、枚举
元组结构体的定义和使用更为简单,实际上是一种元组形式的结构体,区别就是有名字和固定的类型格式,主要是为了处理定义经常使用的简单类型用的。结构体和元组是类似的,可以将不同类型的数据作为一个整体,但是结构体内部每个成员是有名字的。这里的结构体和C++中的不太一样,这里的结构体只能用来定义类型,不能实例化对象,不需要。Rust的枚举和C++的枚举还是不太一样的,但是使用是比较简单的,例如。前者指的是堆内存中的字符串,我们可以理解为常量字符串,用的时候是作为。参数,而是属于结构体全体的,不属于某个具体的实例。原创 2025-04-05 22:19:49 · 1004 阅读 · 1 评论 -
Rust所有权详解
在栈空间内,Rust变量“移动”的方式其实就是复制,因为栈空间内基本上都是基本数据类型的,通常占用空间和复制时间不会很久,就会是直接复制,这时候两个变量都是可以使用的。按照原先的理解,s1内部会存一个指向"hello"的指针,s2内部其实也是一个指向"hello"的指针,但是s2是后来的,我们就认为s2是s1的一个引用,也就是别名。一般的租借引用是不允许修改数据内容的,除非原先的数据是mut的,引用时也是mut引用,才允许修改。这实际上是一种所有权的转移,主要是避免频繁申请和释放堆空间。原创 2025-04-05 16:52:03 · 771 阅读 · 0 评论 -
Rust闭包详解
默认情况下,闭包会借用他捕获的环境中的变量,闭包可以使用这些变量,但是不能修改他们的所有权,此时闭包内部和外部的作用域都可以使用这个变量。:在闭包之前添加move关键字,闭包会获取他捕获的变量的所有权,此时,变量的所有权会转移到内部,外部作用域无法使用这些变量。闭包的生命周期与它们所捕获的变量的生命周期相关。Rust 的闭包是轻量级的,并且 Rust 的编译器会进行优化,使得闭包的调用接近于直接调用函数。闭包可以通过move关键字获取外部变量的所有权,或者通过借用的方式获取外部变量的引用。原创 2025-04-01 21:12:17 · 554 阅读 · 0 评论 -
Rust迭代器详解
我们也可以为自己的类型实现迭代器 iterator trait(可以理解为接口)只需要定义next方法即可,例如} else {Noneprintln!// 输出 1 到 5这里我们先不去管 impl 是什么,直接翻译的话是实例,适用于给结构体或者特性实现方法的一个关键字。原创 2025-04-01 20:45:48 · 839 阅读 · 0 评论 -
Rust函数、条件语句、循环
除此之外也可以给循环设定标签,也就是可以在多层循环时,内部只需要一个break,就能退出所有循环,同时还能带出返回值。这是rust非常重要的基础概念,我们可以认为函数体是由语句和表达式组成的。需要注意的是,表达式的返回值是 a + b,代表整个表达式的返回值,加上。函数名是蛇形风格,rust不在意函数的声明顺序,只需要有声明即可。for循环是和python很像的,类似于C++的范围for。这里的a是数组,iter表示迭代器,后面我们会详细讲。语句指的是执行某些操作并且没有返回值的步骤。原创 2025-03-23 20:10:25 · 414 阅读 · 0 评论 -
Rust基础语法
用bool表示,只能是true或者false,需要注意的是,这里相对于C/C++的限制更加严格,bool类型是无法和int类型进行隐式类型转换的。使用char表示,大小位4字节,主要是因为是使用Unicode编码的,可以支持中英日韩表情符号零宽度空格,这些都是有效字符。Rust是强类型语言,也就是说他对于变量的限制非常严格,但是具有自动判断变量类型的能力。我们可以认为这个a是一个变量,可以使用let重新绑定,但是在绑定之前是不允许被改变的。上面的a是不可变变量,因此任何形式的重新赋值都是不被允许的。原创 2025-03-21 11:12:37 · 500 阅读 · 0 评论 -
Rust语言介绍和猜数字游戏的实现
Rust语言是一种系统编程语言,核心强调安全性、并发性以及高性能,由类似于C/C++的底层控制能力,性能也非常接近,Rust有一些特性所有权系统,这个可以自动管理内存,无需垃圾回收器,保证数据的安全零成本抽象,高层抽象不会带来运行时的开销,运行时的效率会很高线程安全,在编译阶段就能防止数据竞争的问题强类型语言,类型转换非常严格,提升代码的可靠性cargo管理工具非常好用,简化项目的管理和依赖管理。原创 2025-03-19 21:15:17 · 668 阅读 · 0 评论