rust
常见集合
Vector储存列表
此处的Vector类似与C 的STL库中的Vecotor,是对数组进行封装后的数据结构。
声明Vector变量
可以通过两种方式声明Vector类型的变量。
- Vec::new()函数
- vec!宏
示例:
代码语言:rust复制// Vec::new()函数
let v: Vec<i32> = Vec::new();
// vec!宏
let v = vec![3,4,5];
更新Vector
可以使用push方法来向Vector中添加元素。
读取Vector
可以使用get方法或下标索引来访问Vector中的元素。
推荐使用get方法来访问Vector中的元素,因为直接访问下标可能会产生越界的错误,而get方法在越界时会返回Nono类型变量。
String
声明String变量
可以通过三种方式声明String变量:
- String::new() 函数
- to_string方法
- String::from()函数
示例:
代码语言:rust复制//String::new()函数新建空String变量
let mut m = String::new();
//to_string方法获得String变量
let s = "test".to_string();
//String::from()函数获得String变量
let str_ = String::from("hello");
更新String变量
更新String变量有三种方式:
- 通过push_str或push方法追加字符串
- 通过+运算符或format!宏拼接字符串
通过+运算符拼接字符串将会导致变量所有权的转移
读取String中元素
由于rust底层以字节形式存储String,因此无法直接通过索引来访问String中的元素, 可以先通过chars方法将String变量转换为char类型,再进行访问、遍历等操作。
示例:
代码语言:rust复制for c in "abcd".chars(){
println!("{c}");
}
Hash Map
Hash Map一种键值对集合,可以通过get方法,根据key来获取value的值。也可通过for-in循环遍历整个Hash Map。
所有权的改变
对于实现了copy trait的类型,其值可以拷贝进入Hash Map,而对于String这样拥有所有权的值,变量的所有权将会转移到Hash
Map中。