修改 str 的一部分
Modifying a slice of str's
我有一个 Vec<&str>
,我想从它的所有元素中删除一个前缀。这就是我隐约的意图:
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);
}
}
我有一个 Vec<&str>
,我想从它的所有元素中删除一个前缀。这就是我隐约的意图:
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);
}
}