摘要: 使用 enum 定义枚举类型。 比如,通过 enum 声明一个名为 IpAddrKind 的枚举,其包含所有可能的 IP 地址种类 —— V4 和 V6,在 Rust 中 V4 和 V6 这些枚举可能 出现的情况被称为 枚举变体(variant): enum IpAddrKind { V4, V6, 阅读全文
posted @ 2022-01-31 15:17 鱼又悲 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 除了 方法,Rust块还允许我们定义不用接收 self 作为参数的函数。由于这类函数与结构体相互关联,所以它们也被称为 关联函数(associated function)。我们将其命名为函数而不是方法,是因为它们不会作用域某个具体的结构体实例。比如,曾经接触过的 String::from 就是关联函 阅读全文
posted @ 2022-01-31 14:18 鱼又悲 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 使用 fn 关键字声明 方法 (与 函数 相似)。 方法与函数的区别是:方法总是被定义在某个结构体(或者枚举类型、trait对象)的上下文中,并且它们的第一个参数永远是 self ,用于指代调用该方法的结构体实例。 定义方法的格式: impl 结构体名 { 方法 } 示例程序: #[derive(D 阅读全文
posted @ 2022-01-31 12:44 鱼又悲 阅读(94) 评论(0) 推荐(0) 编辑
摘要: Rust为结构体提供了打印调试信息的功能,但是默认不启用。要启用这个功能,需要在结构体定义前添加注解: #[derive(Debug)] 然后再使用 {:?} 或 {:#?}(后者更易读一些) 在 println! 中输出。 示例程序: #[derive(Debug)] struct User { 阅读全文
posted @ 2022-01-31 12:20 鱼又悲 阅读(2095) 评论(0) 推荐(0) 编辑
摘要: 在 $HOME/.cargo/config (默认没有这个文件,需要新建)中添加如下内容: [source.crates-io] replace-with = 'ustc' [source.ustc] registry = "git://mirrors.ustc.edu.cn/crates.io-i 阅读全文
posted @ 2022-01-30 19:19 鱼又悲 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 我们在定义一个新的结构体变量时可以使用已有的成员的属性来更新。 下面的程序使用 结构体更新语法 根据其他结构体实例创建新的结构体实例。 示例程序: struct Student { name: String, chinese: u32, math: u32, science: u32, englis 阅读全文
posted @ 2022-01-30 12:19 鱼又悲 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 字段初始化简写(field init shorthand):在字段名与变量名相同时,不需要使用 字段名: 变量名 的形式,而直接使用 字段名 的形式。 示例程序: struct User { username: String, email: String, sign_in_count: u64, a 阅读全文
posted @ 2022-01-30 12:10 鱼又悲 阅读(503) 评论(0) 推荐(0) 编辑
摘要: Rust 中使用 struct 关键字定义并实例化结构体。 示例程序: struct User { username: String, email: String, sign_in_count: u64, actice: bool, } fn main() { let user1 = User { 阅读全文
posted @ 2022-01-29 15:46 鱼又悲 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 示例程序: fn main() { let a = [1, 2, 3, 4, 5]; let slice = &a[1..3]; for (i, &item) in slice.iter().enumerate() { println!("{} : {}", i, item); } } 这里的切片类 阅读全文
posted @ 2022-01-29 15:37 鱼又悲 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 字符串切片:指向String对象某个连续部分的引用。 使用形式:[starting_index..ending_index],其中 starting_index 是切片起始位置的索引值,ending_index 是切片终止位置的下一个位置的索引值。 示例程序: fn main() { let s = 阅读全文
posted @ 2022-01-29 12:56 鱼又悲 阅读(321) 评论(0) 推荐(0) 编辑