2023学习日志

2023-07-06 11:25:16 浏览数 (1)

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_strpush方法追加字符串
  • 通过运算符或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中。

0 人点赞