代表的な型
Box<T>はヒープ上の単独所有、Rc<T>は単一スレッドでの共有所有、Arc<T>は複数スレッドでの共有所有に使います。RefCell<T>は借用規則を実行時に検査する内部可変性です。
use std::{cell::RefCell,rc::Rc};
fn main(){
let a=Rc::new(RefCell::new(0));
let b=Rc::clone(&a);
*a.borrow_mut()+=1;
*b.borrow_mut()+=2;
println!("{}",a.borrow());
}
共有可変状態は便利ですが、借用違反は実行時panicになります。借用範囲を短くし、不要なら通常の所有権・借用を選びます。
演習:共有カウンター
incは1増加、add xはx増加、getは現在値を出力します。Rc<RefCell<i64>>を使ってください。
コード提出フォーム
RUST安全なサーバー側採点連携が未接続のため、現在は提出できません。
採点基盤準備中
公開テストケース
読み込み中…