
マクロ
宣言的マクロ(macro_rules!)、derive マクロ、attribute マクロ、手続き的マクロ、マクロの衛生性
20 面接問題·
Mid-Level
1Rust で宣言的マクロを定義するために使用される構文はどれですか?
1
Rust で宣言的マクロを定義するために使用される構文はどれですか?
回答
macro_rules! 構文は Rust で宣言的マクロを定義するために使用されます。このメタプログラミングの形式は、Rust 構文に対するパターンマッチングを使用してコンパイル時にコードを変換します。宣言的マクロは、パターンをマッチさせてそのパターンに基づいてコードを生成するため、「macros by example」とも呼ばれます。
2Rust でマクロを呼び出すにはどうしますか?
2
Rust でマクロを呼び出すにはどうしますか?
回答
Rust のマクロは名前の後に感嘆符を付け、続けて括弧、角括弧、または波括弧で引数を渡して呼び出します。この慣習により、マクロ呼び出しを通常の関数呼び出しと視覚的に区別できます。例えば println!("Hello") や vec![1, 2, 3] はマクロの呼び出しです。
3宣言的マクロで式をキャプチャするにはどの fragment specifier を使いますか?
3
宣言的マクロで式をキャプチャするにはどの fragment specifier を使いますか?
回答
fragment specifier $e:expr は宣言的マクロで Rust の式をキャプチャします。fragment specifier はマクロが受け付けられる構文の種類を定義します。その他のよく使われる specifier には、識別子用の ident、型用の ty、token tree 用の tt、コードブロック用の block があります。
4
宣言的マクロと手続き的マクロの主な違いは何ですか?
5
Rust におけるマクロの衛生性(macro hygiene)とは何ですか?
+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問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問