Rust学习笔记
分享一些Rust里的一些重要概念,和大家一起进步学习
某科学的泡泡茶壶
这个作者很懒,什么都没留下…
展开
-
Rust:并发编程(concurrent programming)
得益于所有权系统以及类型系统,Rust有着非常优异的并发性能。原创 2022-07-15 09:55:12 · 424 阅读 · 1 评论 -
Rust:在vector中存储不同类型的数据
Rust语言中的vector只能存放相同类型的数据,但是Enum的存在提供了一种在vector中存放不同类型数据的方式即使用enum包裹不同的类型,然后在vector中使用。///测试大于10个字的行数大于10行///测试大于10个字的行数大于10行///测试大于10个字的行数大于10行///测试大于10个字的行数大于10行///测试大于10个字的行数大于10行///测试大于10个字的行数大于10行///测试大于10个字的行数大于10行///测试大于10个字的行数大于10行...原创 2022-07-14 00:03:51 · 600 阅读 · 0 评论 -
Rust:Match语句详解
Rust book里一个简单的例子:当你在 => 后执行的语句不止一条时,需要加 {}:Match语句的exhaustive(穷尽)特性:match语句存在一个exhaustive特性,我觉得可以翻译为“穷尽”。也就是说match语句要求穷尽value的所有pattern。当你不想穷尽所有可能的pattern的时候,Rust也提供了相应的解决办法:_ placeholder 比如 u8 的范围为0~255,我们可能只关心其中几个“pattern” :1,3,5,7。这时候可以用_原创 2022-07-13 22:15:28 · 4987 阅读 · 0 评论 -
Rust:生命周期标注(lifetime annotation)
Rust语言中的所有引用(referrence)都有一个lifetime,指得是该引用有效的作用域(scope)。通常情况下,lifetime都是隐式的,rust编译器会自己推断。但在一些复杂情况下,编译器无法准确的判断引用的生命周期,则需要我们手动标注lifetime。需要再次提醒大家的是,Rust语言要求生命周期必须要在编译阶段就确认,因此,像如下代码,通不过编译这里有两个引用,但是只有一个返回&str。因此在编译阶段,Rust不知道这两个引用生命周期何时终止。生命周期的标注语法如下,一个生命周期原创 2022-07-12 16:53:09 · 884 阅读 · 1 评论 -
Rust:Trait 详解
Rust语言里不同的type(比如 struct, enum等)可以调用的函数主要包括本身实现的方法。此外,Rust也提供了trait来定义不同type所需的“common behavior”,以此简化代码。一个trait里面可以包含多个method对type实现trait:以strcut为例,对struct实现trait,方式与实现struct方法类似。实现时可以选择 重写trait中的method,也可以选择不重写,直接使用trait中默认的method定义结果:实例化struct,原创 2022-07-12 09:53:56 · 2492 阅读 · 0 评论