Rust 集合与字符串学习笔记
本篇学习笔记主要介绍 Rust 的集合和字符串相关知识点,方便初学者快速了解 Rust 的基础数据结构。
集合
Rust 的集合分为两类:Vec 和 HashMap。其中 Vec 是一种动态数组,可以存储任何类型的元素;HashMap 则是一种键值对映射,也可以存储任何类型的值,但键必须是可哈希的(即实现了 Hash trait)。
Vec
Vec 可以通过以下方式进行初始化:
rustCopy Codelet v1: Vec<i32> = Vec::new(); // 创建一个空的 Vec
let v2 = vec![1, 2, 3]; // 使用 vec! 宏创建包含初始值的 Vec
向 Vec 中添加元素有两种方式:
rustCopy Codelet mut v = Vec::new();
v.push(1); // 将值 1 添加到 Vec 的末尾
v.extend([2, 3].iter()); // 将数组 [2, 3] 中的元素添加到 Vec 的末尾
访问 Vec 中的元素可以使用索引或 get 方法:
rustCopy Codelet v = vec![1, 2, 3];
let first = v[0]; // 获取第一个元素
let second = v.get(1); // 获取第二个元素,返回 Option<&i32>
HashMap
HashMap 可以通过以下方式进行初始化:
rustCopy Codeuse std::collections::HashMap;
let mut scores = HashMap::new(); // 创建一个空的 HashMap
scores.insert("Alice", 100); // 添加键值对
scores.insert("Bob", 90);
let teams = vec!["Red", "Blue"];
let initial_scores = vec![10, 50];
let score_map: HashMap<_, _> = teams.iter().zip(initial_scores.iter()).collect(); // 使用 zip 和 iter 方法创建 HashMap
访问 HashMap 中的元素可以使用 get 方法:
rustCopy Codelet mut scores = HashMap::new();
scores.insert("Alice", 100);
scores.insert("Bob", 90);
let alice_score = scores.get("Alice"); // 获取 Alice 对应的值,返回 Option<&i32>
字符串
Rust 的字符串类型有两种:String 和 &str。其中 String 是可变的、拥有所有权的字符串,&str 则是不可变的字符串引用。
String
String 可以通过以下方式进行初始化:
rustCopy Codelet s1: String = String::new(); // 创建一个空的 String
let s2 = "initial contents".to_string(); // 从字符串字面量创建 String
let s3 = String::from("initial contents"); // 从字符串字面量创建 String
向 String 中添加字符或字符串有两种方式:
rustCopy Codelet mut s = String::from("foo");
s.push('bar'); // 将字符 'b' 添加到 String 的末尾
s.push_str("baz"); // 将字符串 "baz" 添加到 String 的末尾
&str
&str 可以通过以下方式进行初始化:
rustCopy Codelet s1: &str = ""; // 创建一个空的字符串引用
let s2 = "hello world"; // 创建一个字符串字面量
将 &str 转换为 String,可以使用 to_string 方法:
rustCopy Codelet s1 = "hello world";
let s2 = s1.to_string(); // 将 &str 转换为 String
实例
下面是一个简单的例子,展示了 Vec 和 String 的基本用法:
rustCopy Codefn main() {
let mut v = Vec::new();
v.push(1);
v.push(2);
v.push(3);
for i in &v {
println!("{}", i);
}
let s1 = String::from("hello");
let s2 = "world".to_string();
let s3 = s1 + &s2; // 使用 + 运算符组合两个字符串
println!("{}", s3);
}
输出结果为:
Copy Code1 2 3 helloworld
以上就是 Rust 集合和字符串的学习笔记,希望对初学者有所帮助。