私はstruct型のvec
を持っており、ベクトルの最初の要素のいくつかのフィールドを変更したいと思います。これどうやってするの?錆のベクトルの要素のフィールドを変更するにはどうすればよいですか?
例:これはコンパイルに失敗し
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''に似たようなことをしようとしました。 –