0
タイプがP<SomeStruct>
(所有または変更可能な参照)の変数を持つ場合、新しいポインタを返さずに、その構造体のフィールドを変更することは可能ですか?私はこのような何かをしようとしてきた:スマートポインタ内構造体のフィールドを変異させるためにどのような方法がありますポインタ内の構造体のフィールドを変更するには?
error: cannot assign to immutable field
--> src/lib.rs:116:5
|
116 | x.id = "bing".to_string()
| ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot mutably borrow immutable field
:
#![feature(rustc_private)]
extern crate syntax;
use syntax::ptr::P;
#[derive(Debug)]
struct Baz {
id: String,
}
#[test]
fn foo() {
let mut pointer = P(Baz { id: "blah".to_string() });
bar(&mut pointer);
}
fn bar(x: &mut P<Baz>) {
x.id = "bing".to_string()
}
が、失敗すると当然の
?遊び場のURL:https://play.rust-lang.org/?gist=5675bc2ef4297fe691204a69ffc19461&version=nightly&backtrace=0
これは再現できません。この正確なコンパイルエラーを示す例を[Rust Playground](https://play.rust-lang.org)に書き込むことを検討してください。 –
@ E_net4、必要なインポートと機能のフラグ、および錆のプレイグラウンドへのリンクを追加しました。 –