- 博客(509)
- 资源 (26)
- 收藏
- 关注
原创 Rust之构建命令行程序(四):用TDD(测试-驱动-开发)模式来开发库的功能
Rust之构建命令行程序(四):用TDD(测试-驱动-开发)模式来开发库的功能
2024-02-23 15:54:13
1253
3
原创 Rust之泛型、特性和生命期(一):通用数据类型
当定义一个使用泛型的函数时,我们将泛型放在函数的签名中,在这里我们通常会指定参数和返回值的数据类型。这样做使我们的代码更加灵活,为我们的函数的调用者提供更多的功能,同时防止代码重复。继续我们的最大函数,示例4显示了两个函数,它们都能找到一个片断中的最大值。然后我们将把它们合并成一个使用泛型的函数。文件名:src/main.rsfn largest_i32(list: &[i32]) -> &i32 { // largest_i32 函数largest。
2023-05-19 14:45:56
754
原创 Rust之包,箱和模块管理(一):包和箱
开发环境Windows 10 Rust 1.60.0VS Code 1.67.2项目工程这里继续沿用上次工程rust-demo基础概念当你编写大型程序时,组织你的代码将是重要的,因为在你的头脑中保持整个程序的轨迹将变得不可能。通过对相关的功能进行分组,并将代码与不同的功能分开,您将清楚在哪里可以找到实现特定功能的代码,以及在哪里可以更改功能的工作方式。到目前为止,我们编写的程序都在一个文件的一个模块中。随着项目的增长,您可以通过将代码分成多个模块和多个文件来组...
2022-05-27 14:36:22
860
原创 Rust之枚举和模式匹配(三):简明控制流if let
开发环境Windows 10 Rust 1.60.0VS Code 1.66.2项目工程这里继续沿用上次工程rust-demo简明控制流 - if letif let语法允许您将if和let组合成一种不太冗长的方式来处理匹配一个模式的值,而忽略其余的模式。考虑下面示例中,它匹配config_max变量中的一个Option<u8 >值,但是如果这个值是Some变量,它只想执行代码。 let config_max = Some(3u8); ...
2022-04-27 15:56:19
1396
原创 Rust之枚举和模式匹配(二):控制流程结构match
开发环境Windows 10 Rust 1.59.0VS Code 1.65.2项目工程这里继续沿用上次工程rust-demo控制流程结构 - matchRust有一个非常强大的控制流构造,称为match,它允许您将一个值与一系列模式进行比较,然后根据匹配的模式执行代码。模式可以由文字值、变量名、通配符和许多其他东西组成;后面涵盖了所有不同种类的模式以及它们的作用。match的强大之处在于模式的表现力,以及编译器确认所有可能的情况都被处理的事实。把一个match...
2022-03-28 14:13:03
1097
1
原创 Rust之枚举和模式匹配(一):枚举定义
开发环境Windows 10 Rust 1.58.1VS Code 1.64.2项目工程这里继续沿用上次工程rust-demo枚举和模式匹配枚举允许您通过枚举类型的可能变体来定义类型。首先,我们将定义并使用一个枚举来展示一个枚举如何编码数据的含义。接下来,我们将探索一个特别有用的枚举,称为Option,它表示一个值可以是某个值,也可以是零。然后,我们将看看match表达式中的模式匹配是如何简化为枚举的不同值运行不同代码的。最后,我们将介绍if let构造如何成为另一种...
2022-02-23 15:31:36
639
原创 Rust之结构体(三):方法
开发环境Windows 10 Rust 1.58.1VS Code 1.63.2项目工程这里继续沿用上次工程rust-demo
2022-01-27 15:55:18
1282
原创 Rust之结构体(二):结构体示例
开发环境Windows 10 Rust 1.57.0VS Code 1.63.2项目工程这里继续沿用上次工程rust-demo结构体示例为了理解什么时候可能需要使用结构体,让我们编写一个程序来计算矩形的面积。我们将从单变量开始,然后重构程序,直到使用结构代替。让我们用`cargo`创建一个名为`rectangles`的新的程序,它将以像素为单位指定矩形的宽度和高度,并计算矩形的面积。代码如下fn main() { let width1 = 30; ...
2021-12-27 16:20:30
939
原创 Rust之结构体(一):定义和实例化结构体
开发环境Windows 10 Rust 1.56.1VS Code 1.62.3项目工程这里继续沿用上次工程rust-demo结构体结构体类似于元组。与元组一样,结构的碎片可以是不同的类型。与元组不同的是,我们将命名每个数据段,这样就可以清楚地了解值的含义。由于这些名称,结构体比元组更灵活:我们不必依赖数据的顺序来指定或访问实例的值。要定义结构,我们输入关键字struct并命名整个结构体。结构体的名称应该描述将数据块组合在一起的重要性。然后,在花括号中定义数据片段...
2021-11-29 15:11:42
2211
原创 Rust之所有权(三):切片类型
开发环境Windows 10 Rust 1.56.0VS Code 1.61.2项目工程这里继续沿用上次工程rust-demo切片类型另一个没有所有权的数据类型是切片。切片允许您引用集合中的连续元素序列,而不是整个集合。下面是一个小的编程问题:编写一个函数,该函数接受一个字符串并返回它在该字符串中找到的第一个单词。如果函数在字符串中找不到空格,则整个字符串必须是一个单词,因此应该返回整个字符串。首先我们考虑一下这个函数:fn first_word(s:...
2021-10-26 14:54:05
535
原创 Rust之所有权(二):引用和借用
开发环境Windows 10 Rust 1.55.0VS Code 1.60.2项目工程这里继续沿用上次工程rust-demo引用和借用上述章节中的元组代码的问题是,我们必须将String返回给调用函数,这样我们仍然可以在调用之后使用String来calculate_length,因为String被移动到计calculate_length中。下面是如何定义和使用具有对对象的引用作为参数的calculate_length函数,而不是获取该值的所有权:...
2021-09-27 16:46:13
314
原创 Rust之所有权(一):所有权
开发环境Windows 10 Rust 1.54.0VS Code 1.59.1项目工程这里继续沿用上次工程rust-demo所有权所有权是Rust最独特的特性,它使Rust能够在不需要垃圾收集器的情况下保证内存安全。因此,了解Rust中所有权是如何工作的是很重要的。什么是所有权Rust的核心特征是所有权。虽然这个特性很容易解释,但它对语言的其他部分有着深刻的含义。所有程序都必须在运行时管理它们使用计算机内存的方式。有些语言有垃圾回收机制,在程序...
2021-08-27 17:05:23
395
原创 Rust之流程控制
开发环境Windows 10 Rust 1.53.0VS Code 1.58.2项目工程这里继续沿用上次工程rust-demoRust的流程控制在大多数编程语言中,决定是否运行某些代码取决于条件是否为真,并决定在条件为真时重复运行一些代码。让编码者控制Rust代码执行流程的最常见构造是if表达式和循环。if表达式if表达式允许编码者根据条件将代码分支。提供一个条件,然后状态,“如果满足此条件,请运行此代码块。如果条件未满足,请不要运行此代码块。”在工程目录中..
2021-07-28 17:26:41
344
原创 Rust之注释
开发环境Windows 10 Rust 1.53.0VS Code 1.57.1Rust的注释所有程序员都努力使他们的代码易于理解,但有时需要额外的解释。在这些情况下,程序员会在源代码中留下注释,编译器会忽略这些注释,但阅读源代码的人可能会发现这是有用的。例如,下面的注释示例:// hello, world在Rust中,惯用的注释样式以两个斜杠开始注释,注释一直持续到行尾。对于超出一行的注释,需要在每一行中包括//,如下所示// So we’re doing so.
2021-06-28 15:21:04
302
原创 Rust之函数
开发环境Windows 10 Rust 1.52.VS Code 1.55.2Rust的函数函数在Rust代码中无处不在。如该语言中最重要的函数之一:main函数,它是许多程序的入口点。同时还有fn关键字,它允许您声明新函数。 ...
2021-05-26 15:15:50
477
原创 Rust之数据类型
开发环境Windows 10 Rust 1.51VS Code 1.55.2Rust中的主要数据类型基本类型 整型 浮点类型 在Rust中,提供了f32和f64两个关键字来定义浮点类型变量,默认是f64.在Rust中,我们声明和定义整型变量时可以使用如下。fn main() { // 加 let sum = 5 + 10; // 减 let difference = 95.5 - 4.3; // 乘
2021-04-27 15:26:08
405
原创 Rust之变量和可变性
开发环境Windows 10 Rust 1.51 VS Code项目工程这里继续沿用上次工程rust-demo。目标本次项目主要介绍Rust语言的变量,不需要额外添加依赖库。变量声明先看下面的代码fn main() { let x = 5; println!("The value of x is: {}", x); x = 6; println!("The value of x is: {}", x);}编译&运行
2021-03-26 16:56:07
146
原创 Rust之Cargo(4) - 猜猜看
开发环境Windows 10 Rust 1.50 VS Code项目工程这里继续沿用上次工程rust-demo。目标本次项目在上次猜数字匹配的基础上,实现循环猜数字匹配。本次项目中使用依赖如下:[dependencies]rand = "^0.6.0"Cargo.toml文件内容如下:编码要实现循环猜数字的功能,需要引入Rust语言中的循环关键字 - loop。本次项目的代码如下:use std::io; // 引...
2021-02-25 10:19:38
157
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人