修改一段str

Tim*_*mmm 5 mutability rust

我有一个Vec<&str>,我想删除所有元素的前缀.这是我隐约想要的:

fn remove_prefix(v: &mut [&str], prefix: &str) {
    for t in v.iter_mut() {
        t = t.trim_left_matches(prefix);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我似乎无法将所有的东西都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);
Run Code Online (Sandbox Code Playgroud)

Chr*_*gan 6

t是类型&mut &str,一个指向字符串切片的可变指针.你想改变什么可变的参考点,所以你需要存储&str*t.

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