![](https://img-blog.csdnimg.cn/e7504f6bfeb941dab5e44589531146cb.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Rust
文章平均质量分 95
分享rust的相关技术
和你一起去月球
工作10年+,先后从事后端开发,前端开发,前端leader,项目管理,产品,技术leader等工作。阿里云专家博主,分享全栈开发相关知识,以梦为马,以汗为泉,不忘初心,不负韶华。
展开
-
泛型、Trait 和生命周期(下)
目前为止,我们定义的结构体全都包含拥有所有权的类型。也可以定义包含引用的结构体,不过这需要为结构体定义中的每一个引用添加生命周期注解。以下示例中有一个存放了一个字符串 slice 的结构体。这个结构体有唯一一个字段part,它存放了一个字符串 slice,这是一个引用。类似于泛型参数类型,必须在结构体名称后面的尖括号中声明泛型生命周期参数,以便在结构体定义中使用生命周期参数。这个注解意味着的实例不能比其part字段中的引用存在的更久。这里的main函数创建了一个的实例,它存放了变量novel。原创 2024-04-22 09:28:57 · 963 阅读 · 23 评论 -
泛型、Trait 和生命周期(中)
一个类型的行为由其可供调用的方法构成。如果可以对不同类型调用相同的方法的话,这些类型就可以共享相同的行为了。trait 定义是一种将方法签名组合起来的方法,目的是定义一个实现某些目的所必需的行为的集合。例如,这里有多个存放了不同类型和属性文本的结构体:结构体用于存放发生于世界各地的新闻故事,而结构体Tweet最多只能存放 280 个字符的内容,以及像是否转推或是否是对推友的回复这样的元数据。我们想要创建一个名为aggregator的多媒体聚合库用来显示可能储存在或Tweet实例中的数据摘要。原创 2024-02-06 23:45:00 · 985 阅读 · 48 评论 -
泛型、Trait 和生命周期(上)
当使用泛型定义函数时,本来在函数签名中指定参数和返回值的类型的地方,会改用泛型来表示。采用这种技术,使得代码适应性更强,从而为函数的调用者提供更多的功能,同时也避免了代码的重复。回到largest函数,以下示例中展示了两个函数,它们的功能都是寻找 slice 中最大值。接着我们使用泛型将其合并为一个函数。println!为了参数化这个新函数中的这些类型,我们需要为类型参数命名,道理和给函数的形参起名一样。原创 2024-02-06 16:44:56 · 981 阅读 · 28 评论 -
Rust 错误处理(下)
让我们使用 Rust 类型系统的思想来进一步确保值的有效性,并尝试创建一个自定义类型以进行验证。回忆一下第二章的猜猜看游戏,我们的代码要求用户猜测一个 1 到 100 之间的数字,在将其与秘密数字做比较之前我们从未验证用户的猜测是位于这两个数字之间的,我们只验证它是否为正。在这种情况下,其影响并不是很严重:“Too high” 或 “Too low” 的输出仍然是正确的。但是这是一个很好的引导用户得出有效猜测的辅助,例如当用户猜测一个超出范围的数字或者输入字母时采取不同的行为。一种实现方式是将猜测解析成。原创 2024-01-17 23:00:00 · 2392 阅读 · 67 评论 -
Rust 错误处理(上)
错误是软件中不可否认的事实,所以 Rust 有一些处理出错情况的特性。在许多情况下,Rust 要求你承认错误的可能性,并在你的代码编译前采取一些行动。这一要求使你的程序更加健壮,因为它可以确保你在将代码部署到生产环境之前就能发现错误并进行适当的处理。)和)错误。对于一个可恢复的错误,比如文件未找到的错误,我们很可能只想向用户报告问题并重试操作。不可恢复的错误总是 bug 出现的征兆,比如试图访问一个超过数组末端的位置,因此我们要立即停止程序。原创 2024-01-17 07:00:00 · 2399 阅读 · 38 评论 -
Rust 常用集合(下)
在这里大概讲到了vector、字符串和哈希 map 的一些基本应用,其他的一些场景可以再去练习,其他的一些功能,也可以参考官方的文档。原创 2024-01-09 23:45:00 · 2382 阅读 · 52 评论 -
Rust 常用集合(上)
在开始深入这些方面之前,我们需要讨论一下术语字符串的具体意义。Rust 的核心语言中只有一种字符串类型:字符串 slicestr,它通常以被借用的形式出现,&str。第四章讲到了字符串 slices:它们是一些对储存在别处的 UTF-8 编码字符串数据的引用。举例来说,由于字符串字面值被储存在程序的二进制输出中,因此字符串字面值也是字符串 slices。字符串(String)类型由 Rust 标准库提供,而不是编入核心语言,它是一种可增长、可变、可拥有、UTF-8 编码的字符串类型。原创 2024-01-09 07:00:00 · 1300 阅读 · 36 评论 -
使用包、Crate 和模块管理项目(下)
如果希望将一个路径下所有公有项引入作用域,可以指定路径后跟这个use语句将中定义的所有公有项引入当前作用域。使用 glob 运算符时请多加小心!Glob 会使得我们难以推导作用域中有什么名称和它们是在何处定义的。原创 2023-12-21 07:00:00 · 2356 阅读 · 51 评论 -
使用包、Crate 和模块管理项目(上)
从 crate 根节点开始: 当编译一个 crate, 编译器首先在 crate 根文件(通常,对于一个库 crate 而言是src/lib.rs,对于一个二进制 crate 而言是)中寻找需要被编译的代码。声明模块: 在 crate 根文件中,你可以声明一个新模块;比如,你用mod garden声明了一个叫做garden的模块。编译器会在下列路径中寻找模块代码:内联,在大括号中,当mod garden后方不是一个分号而是一个大括号在文件在文件声明子模块。原创 2023-12-12 07:00:00 · 1716 阅读 · 58 评论 -
Rust 枚举和模式匹配
枚举),也被称作enums。枚举允许你通过列举可能的成员variants)来定义一个类型。首先,我们会定义并使用一个枚举来展示它是如何连同数据一起编码信息的。接下来,我们会探索一个特别有用的枚举,叫做Option,它代表一个值要么是某个值要么什么都不是。然后会讲到在match表达式中用模式匹配,针对不同的枚举值编写相应要执行的代码。最后会介绍if let,另一个简洁方便处理代码中枚举的结构。}", var)原创 2023-12-05 07:00:00 · 2511 阅读 · 65 评论 -
Rust 语言中的结构体
结构体和我们之前论过的元组类似,它们都包含多个相关的值。和元组一样,结构体的每一部分可以是不同类型。但不同于元组,结构体需要命名各部分数据以便能清楚的表明其值的意义。由于有了这些名字,结构体比元组更灵活:不需要依赖顺序来指定或访问实例中的值。定义结构体,需要使用struct关键字并为整个结构体提供一个名字。结构体的名字需要描述它所组合的数据的意义。接着,在大括号中,定义每一部分数据的名字和类型,我们称为字段fieldage: u64,原创 2023-11-17 07:00:00 · 1843 阅读 · 81 评论 -
Rust 中的引用与借用
所有权、借用和 slice 这些概念让 Rust 程序在编译时确保内存安全。Rust 语言提供了跟其他系统编程语言相同的方式来控制你使用的内存,但拥有数据所有者在离开作用域后自动清除其数据的功能意味着你无须额外编写和调试相关的控制代码。原创 2023-11-14 07:00:00 · 2103 阅读 · 59 评论 -
Rust核心功能之一(所有权)
所有权(系统)是 Rust 最为与众不同的特性,对语言的其他部分有着深刻含义。它让 Rust 无需垃圾回收(garbage collector)即可保障内存安全,因此理解 Rust 中所有权如何工作是十分重要的。所有程序都必须管理其运行时使用计算机内存的方式。一些语言中具有垃圾回收机制,在程序运行时有规律地寻找不再使用的内存;在另一些语言中,程序员必须亲自分配和释放内存。Rust 则选择了第三种方式:通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查。如果违反了任何这些规则,程序都不能编译。原创 2023-11-07 10:22:21 · 1368 阅读 · 65 评论 -
Rust 语言常见的一些概念(下)
进入第一个循环的时候i+1,i的结果为1,进入到第二个循环判断i对2求余是否等于0,结果不等进入else语句块中,在else语句块出现break语句,跳出当前循环,进入到i += 1的位置,所有此时i等于2,然后再次进去第二个循环,i对2求余结果等于0,对i进行加1操作,此时i等于3,然后跳到标签循环的位置,然后往下执行打印结果:"res:3".这是 Rust 设计中一个经过慎重考虑的决定:要求在函数定义中提供对用的类型说明,意味着编译器再也不需要你在代码的其他地方注明类型来指出你的意图。原创 2023-11-03 07:00:00 · 740 阅读 · 59 评论 -
Rust 语言常见的一些概念(上)
时,实际上创建了一个新变量,我们可以改变值的类型,并且复用这个名字。元组中的每一个位置都有一个类型,而且这些不同值的类型也不必是相同的。与元组不同,数组中的每个元素的类型必须相同。Rust 中的数组与一些其他语言中的数组不同,Rust 中的。元组是一个将多个其他类型的值组合进一个复合类型的主要方式。会打印对应的结果,但是重复定义的地方会有提示,说变量未引用,如果是有意为之的,建议加一个下划线的前缀。类型依赖运行程序的计算机架构:64 位架构上它们是 64 位的,32 位架构上它们是 32 位的。原创 2023-10-31 23:45:00 · 846 阅读 · 72 评论 -
Rust 语言介绍及安装
Rust 是一门赋予每个人构建可靠且高效软件能力的语言。原创 2023-10-30 07:00:00 · 1188 阅读 · 46 评论