Rust 修改str'的切片;s

Rust 修改str'的切片;s,rust,mutability,Rust,Mutability,我有一个Vec,我想从它的所有元素中删除一个前缀。这就是我模糊的意图: fn remove_prefix(v: &mut [&str], prefix: &str) { for t in v.iter_mut() { t = t.trim_left_matches(prefix); } } 然而,我似乎无法将所有的mut放在正确的位置。或者这是一件与一生相关的事情?谁能给我一个提示吗?以下是我当前的错误: makefile_to_qbs.

我有一个
Vec
,我想从它的所有元素中删除一个前缀。这就是我模糊的意图:

fn remove_prefix(v: &mut [&str], prefix: &str) {
    for t in v.iter_mut() {
        t = t.trim_left_matches(prefix);
    }
}
然而,我似乎无法将所有的
mut
放在正确的位置。或者这是一件与一生相关的事情?谁能给我一个提示吗?以下是我当前的错误:

makefile_to_qbs.rs:22:7: 22:34 error: mismatched types:
 expected `&mut &str`,
    found `&str`
(values differ in mutability) [E0308]
makefile_to_qbs.rs:22           t = t.trim_left_matches(prefix);

t
属于
&mut&str
类型,是指向字符串片段的可变指针。您希望更改可变引用指向的对象,因此需要在
*t
中存储
&str

fn remove_prefix(v: &mut [&str], prefix: &str) {
    for t in v.iter_mut() {
        *t = t.trim_left_matches(prefix);
    }
}