
Unsafe Rust
Unsafe ブロック、raw ポインタ(*const T、*mut T)、FFI、unsafe トレイト、Undefined Behavior (UB)、safety 不変条件
20 面接問題·
Senior
1Rust で unsafe モードのスーパーパワーを有効にするキーワードはどれですか?
1
Rust で unsafe モードのスーパーパワーを有効にするキーワードはどれですか?
回答
unsafe キーワードは、safe Rust で禁止されている 5 つの機能を解放します。raw ポインタのデリファレンス、unsafe 関数の呼び出し、mutable な static 変数へのアクセス、unsafe トレイトの実装、そして union フィールドへのアクセスです。このブロックは、開発者が memory safety を保証する責任を負うことをコンパイラに伝えます。
2unsafe コードは safe Rust と比べて、いくつの追加機能を解放しますか?
2
unsafe コードは safe Rust と比べて、いくつの追加機能を解放しますか?
回答
unsafe モードは正確に5つの機能を解放します: raw pointer のデリファレンス、unsafe な関数やメソッドの呼び出し、可変な static 変数へのアクセスや変更、unsafe な trait の実装、そして union のフィールドへのアクセスです。これら5つの操作が safe と unsafe Rust の唯一の違いです。
3Rust で変数への immutable な raw pointer を作成する正しい構文はどれですか?
3
Rust で変数への immutable な raw pointer を作成する正しい構文はどれですか?
回答
immutable な raw pointer を作成する構文は let ptr = &x as *const T です。*const T 型は immutable な raw pointer を表します。raw pointer の作成は safe であり、deref のみが unsafe ブロックを必要とします。let ptr: *const T = &x として暗黙の型強制を使うこともできます。
4
Rust における *const T と *mut T の違いは何ですか?
5
なぜ safe Rust では raw pointer の作成は許可されているのに、デリファレンスは許可されていないのですか?
+17 面接問題
その他のRust面接トピック
Rustの基礎
Junior
25問Ownership & Borrowing
Junior
22問Structs & Enums
Junior
20問エラー処理
Junior
18問コレクション
Junior
20問モジュールとパッケージ
Junior
18問Traits
Mid-Level
22問Generics
Mid-Level
20問Lifetimes
Mid-Level
20問Iterators & Closures
Mid-Level
22問Smart Pointers
Mid-Level
22問Concurrency Basics
Mid-Level
20問async/await
Mid-Level
22問Testing
Mid-Level
18問Cargo & Ecosystem
Mid-Level
18問Pattern Matching
Mid-Level
18問マクロ
Mid-Level
20問Serde とシリアライゼーション
Mid-Level
20問高度なトレイト
Senior
22問高度な lifetime
Senior
20問Type System
Senior
20問Tokio & Async I/O
Senior
22問パフォーマンス最適化
Senior
20問Memory Management
Senior
20問Web Frameworks
Senior
22問Database Integration
Senior
20問Rust デザインパターン
Senior
20問