編集者注: このコードは Rust 1.0 より前のバージョンのものであり、構文的または意味的に有効な Rust 1.0 コードではありません。
そのため、学習演習として共有ボックス ポインターを調べます。純粋にアカデミックなエクササイズ。
#[feature(managed_boxes)];
struct Monster {
legs: int
}
fn main() {
let mut steve = @Monster{ legs: 2 };
steve.legs = 8;
}
このコンパイラ エラーが発生することに少し驚いています。
shared_box.rs:10:5: 10:15 error: cannot assign to immutable field
shared_box.rs:10 steve.legs = 8;
何を与える?
所有ボックス ポインターに切り替えると、エラーはなくなります。これはマネージ ポインター アクセスに対するある種の制限ですか?