- 博客(7)
- 收藏
- 关注
原创 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 630
原创 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 5014
原创 error[E0308]: Rust 闭包函数锁定参数类型
Rust的闭包函数可以不写参数type,由编译器推断,并且在推断之后参数的type会被lock进该闭包函数中如下代码会报错
2022-07-13 09:40:52 520
原创 Rust:生命周期标注(lifetime annotation)
Rust语言中的所有引用(referrence)都有一个lifetime,指得是该引用有效的作用域(scope)。通常情况下,lifetime都是隐式的,rust编译器会自己推断。但在一些复杂情况下,编译器无法准确的判断引用的生命周期,则需要我们手动标注lifetime。需要再次提醒大家的是,Rust语言要求生命周期必须要在编译阶段就确认,因此,像如下代码,通不过编译这里有两个引用,但是只有一个返回&str。因此在编译阶段,Rust不知道这两个引用生命周期何时终止。生命周期的标注语法如下,一个生命周期
2022-07-12 16:53:09 907 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 2524
原创 error[E0277]: Rust语言如何print struct内容?
直接使用println!宏会报错报错原因: println!宏通过trait `std::fmt::Display`确定输出的具体格式,可以直接用println!宏的原生类型都实现了Display。 对于struct,因为没有实现Display,关于其输出格式存在一定模糊性,比如要不要逗号?要不要花括号?等等。使用{:#?}有更好的输出效果,提高可读性方法2: 使用dbg!宏dbg!宏会获得表达式的所有权,print出调用dbg!宏所在的文件与行信息,表达式的
2022-07-10 12:28:00 674 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人