
Serde とシリアライゼーション
serde トレイト、derive マクロ、JSON/YAML/TOML、カスタム(デ)シリアライゼーション、Cow を使ったライフタイム、パフォーマンス
20 面接問題·
Mid-Level
1Rust における serde クレートの主な役割は何ですか?
1
Rust における serde クレートの主な役割は何ですか?
回答
Serde は Rust 向けの汎用シリアライゼーション・デシリアライゼーションフレームワークです。その名前は「SERialize DEserialize」に由来します。Rust のデータ構造をさまざまなデータ形式(JSON、YAML、TOML など)へ、またそこから効率的かつ型安全に変換できます。Serde は Rust のトレイトシステムを利用してランタイムコストのない抽象化を提供します。
2serde で struct の自動シリアライゼーションを有効にする正しい構文はどれですか?
2
serde で struct の自動シリアライゼーションを有効にする正しい構文はどれですか?
回答
#[derive(Serialize, Deserialize)] 属性は struct に対して Serialize および Deserialize トレイトの実装を自動生成します。この手続き的マクロはフィールド構造を解析し、コンパイル時に必要なコードを生成します。serde からトレイトを use serde::{Serialize, Deserialize} でインポートする必要があります。
3serde_json で Rust の struct を JSON 文字列に変換するにはどの関数を使用しますか?
3
serde_json で Rust の struct を JSON 文字列に変換するにはどの関数を使用しますか?
回答
serde_json::to_string() 関数は Serialize を実装する値を JSON 文字列に変換します。シリアライゼーションは特定のケースで失敗する可能性があるため、Result<String, Error> を返します。インデント付きの整形された出力には serde_json::to_string_pretty() を使用します。Writer に直接書き込むには serde_json::to_writer() を使用します。
4
serde_json で JSON 文字列を Rust の struct にデシリアライズするにはどうしますか?
5
シリアライゼーション時にフィールドの名前を変更するにはどの serde 属性を使用しますか?
+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問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問