Rust 字符串与集合

2026-06-18 02:21:29

字符串

&strString

  • 硬编码在代码里的字符串,编译时放到只读内存区,类型是 &str(一份借用的引用)
  • 生命周期是整个程序,无法让变量获得所有权

字面量转 String

如果需要可变的、拥有所有权的字符串,有四种方式:

let s = "hello".to_string();
let s = String::from("hello");
let s = "hello".to_owned();   // 转化为 owned 类型
let s: String = "hello".into(); // 类型推导

Vector

Vec<T> 是一个可以自动伸缩的数组,数据储存在堆上。

创建

let mut pets = Vec::new();

添加元素

pets.push(item);   // 追加到末尾,所有权移交给 Vec

读取元素

vec[index];        // 越界时 panic
vec.get(index);    // 越界时返回 None,更安全

遍历

for (i, pet) in pets.iter().enumerate() {
    // i 是索引,pet 是 &T 引用
}

// 如果需要取得元素所有权
for pet in pets.into_iter() { }

常用方法

方法 说明 示例
push(item) 末尾添加元素 pets.push(Pet::new(...))
pop() 移除并返回最后一个元素(Option) let last = pets.pop()
len() 返回元素个数 pets.len()
is_empty() 判断是否为空 pets.is_empty()
get(index) 安全获取引用(Option) pets.get(1)
remove(index) 移除指定索引元素(后面元素前移) pets.remove(0)
contains(&item) 判断是否包含某个元素 pets.contains(&some_pet)

← 返回文章列表