
Lifetimes
Lifetime アノテーション、省略規則、'static lifetime、struct の lifetime、lifetime bounds
20 面接問題·
Mid-Level
1Rust における lifetime の主な目的は何ですか?
1
Rust における lifetime の主な目的は何ですか?
回答
Lifetime により、compiler はすべての reference が使用中ずっと有効であることを検証できます。reference が参照するデータより長く生存しないことを保証し、dangling reference を防ぎます。borrow checker は lifetime を使用してコンパイル時にメモリ安全性を検証し、実行時のオーバーヘッドはありません。
2reference に lifetime を注釈するにはどの構文を使いますか?
2
reference に lifetime を注釈するにはどの構文を使いますか?
回答
Lifetime はアポストロフィに続けて名前を付けて注釈します。通常は 'a のような小文字を使います。&'a T という構文は lifetime 'a を持つ T への reference を意味します。慣例として generic な lifetime には 'a, 'b, 'c を使いますが、アポストロフィの後には任意の有効な識別子を使用できます。
3Rust において 'static lifetime は何を意味しますか?
3
Rust において 'static lifetime は何を意味しますか?
回答
'static lifetime は、reference がプログラムの実行期間全体にわたって生存できることを示します。"hello" のような string literal は binary に埋め込まれているため、自動的に 'static lifetime を持ちます。グローバル定数や Box::leak で作成された値もこの lifetime を持ちます。注意:'static は値がプログラム開始時から存在していたという意味ではなく、終了まで生存できるという意味です。
4
Rust の compiler は lifetime の省略規則をいくつ自動的に適用しますか?
5
なぜ関数 fn longest(x: &str, y: &str) -> &str はコンパイルできないのですか?
+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問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問Unsafe Rust
Senior
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問