在不可变迭代器上运行 next 时不能作为可变借用(没有其他借用)
发布时间:2022-05-17 21:31:19 216
相关标签:
尝试运行以下代码时:
fn main() {
let s1 = String::from("hello world");
println!("The first word in the string is: {}", return_first_word(&s1));
}
fn return_first_word(s: &String) -> String {
let t = s.split(" ");
String::from(t.next().unwrap())
}
我得到错误cannot borrow as mutable就行了String::from(t.next().unwrap())。自然,当我用代码替换该行时let t = ...,let mut t = ...效果很好。
我的问题是,有人可以解释为什么吗?这里借什么,借什么?我检查了我新创建的不可变变量的类型,t它是一个迭代器。为什么迭代迭代器会成为问题?
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报