
コレクション
Vec<T>、String、HashMap、HashSet、イテレータ、collect、コレクションの所有権
20 面接問題·
Junior
1Vec<T> の末尾に要素を追加するメソッドはどれですか?
1
Vec<T> の末尾に要素を追加するメソッドはどれですか?
回答
push() メソッドはベクタの末尾に要素を追加し、サイズを 1 増やします。この操作は償却計算量 O(1) です。容量を超えるとベクタがメモリを再確保する必要がある場合があるためです。複数の要素を追加するには、必要に応じて extend() や append() を使用できます。
2Rust における String と &str の主な違いは何ですか?
2
Rust における String と &str の主な違いは何ですか?
回答
String はヒープ上に格納される所有型 (owned) で、可変かつサイズ変更が可能です。&str は UTF-8 シーケンスへの不変参照で、しばしば「string slice」と呼ばれます。String は自身のデータを所有し変更できますが、&str は既存のデータを所有せずに借用します。この区別は Rust のメモリ管理において基本的です。
3Rust で新しい空の Vec<i32> を作成するにはどうすればよいですか?
3
Rust で新しい空の Vec<i32> を作成するにはどうすればよいですか?
回答
Vec::new() は初期割り当てなしで空のベクタを作成します。vec![] マクロでも空のベクタを作成できますが、Vec::new() が標準的な明示的メソッドです。ジェネリック型は推論されるか、turbofish 構文 Vec::<i32>::new() または型注釈によって明示的に指定できます。
4
Vec<T> に対して get() メソッドは何を返しますか?
5
平均O(1)のアクセスでキーと値を関連付けるには、どのデータ構造を使用しますか?
+17 面接問題
その他のRust面接トピック
Rustの基礎
Junior
25問Ownership & Borrowing
Junior
22問Structs & Enums
Junior
20問エラー処理
Junior
18問モジュールとパッケージ
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問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問