我有一個vec
一些結構類型,我想改變矢量中的第一個元素的一些領域。我怎樣才能做到這一點?如何更改Rust中向量中元素的字段?
例子:
struct SomeType {
some_value: i32,
}
fn main() {
let mut vec = Vec::new();
let mut t = SomeType { some_value: 45 };
vec.push(t);
println!("Old value: {}", vec.first().unwrap().some_value);
vec.first().unwrap().some_value += 1;
println!("New value: {}", vec.first().unwrap().some_value);
}
這無法編譯:
error: cannot assign to immutable field
--> vec.rs:15:2
|
15 | vec.first().unwrap().some_value += 1;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot mutably borrow immutable field
我不能讓我的周圍魯斯特突變性的東西還沒有頭;這裏的正確方法是什麼?
感謝您的詳細解釋!確實來自C++,我試着處理類似於「const」的東西,現在我對它有了更好的理解。 –