エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Cell, RefCell, UnsafeCellの違いとその使い分け - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Cell, RefCell, UnsafeCellの違いとその使い分け - Qiita
導入 cellモジュールにはCell, RefCell, UnsafeCellの三種類の構造体が定義されています。それらの違い... 導入 cellモジュールにはCell, RefCell, UnsafeCellの三種類の構造体が定義されています。それらの違いを内部実装に軽く触れつつ解説したいと思います。 詳しい解説が不要な方は「cellモジュール」と「使い分け」をお読みください。 借用ルール Rustの借用ルールについて復習しておきましょう。 Rustは参照に関して、可変な参照が唯一つ存在するか、不変な参照が一つ以上存在するかしか認めていません。もしこのルールがなければ以下のようなコードが通ることになります。 let mut v = vec![0, 1, 2]; let s = &v[1..]; // ここでvを借用した v.pop(); // 既に借用されているvを可変に借用するので本当ならコンパイルエラー println!("{}", s[1]); // 既にポップされた無効な値への参照を使用としている このように