
Serde และการ Serialization
serde traits, derive macros, JSON/YAML/TOML, การ (de)serialization แบบกำหนดเอง, lifetimes ด้วย Cow, ประสิทธิภาพ
1บทบาทหลักของ crate serde ใน Rust คืออะไร?
บทบาทหลักของ crate serde ใน Rust คืออะไร?
คำตอบ
Serde เป็นเฟรมเวิร์กสำหรับ serialization และ deserialization แบบทั่วไปสำหรับ Rust ชื่อของมันมาจาก "SERialize DEserialize" ช่วยให้สามารถแปลงโครงสร้างข้อมูล Rust ไปและกลับจากรูปแบบข้อมูลต่าง ๆ (JSON, YAML, TOML ฯลฯ) ได้อย่างมีประสิทธิภาพและ type-safe Serde ใช้ระบบ trait ของ Rust เพื่อมอบ abstraction ที่ไม่มีต้นทุนในเวลารันไทม์
2ไวยากรณ์ที่ถูกต้องในการเปิดใช้งาน serialization อัตโนมัติบน struct ด้วย serde คืออะไร?
ไวยากรณ์ที่ถูกต้องในการเปิดใช้งาน serialization อัตโนมัติบน struct ด้วย serde คืออะไร?
คำตอบ
แอตทริบิวต์ #[derive(Serialize, Deserialize)] สร้างการ implement ของ trait Serialize และ Deserialize สำหรับ struct โดยอัตโนมัติ procedural macro นี้วิเคราะห์โครงสร้างของฟิลด์และสร้างโค้ดที่จำเป็นในเวลาคอมไพล์ คุณต้อง import trait จาก serde ด้วย use serde::{Serialize, Deserialize}
3ควรใช้ฟังก์ชันใดในการแปลง struct ของ Rust เป็นสตริง JSON ด้วย serde_json?
ควรใช้ฟังก์ชันใดในการแปลง struct ของ Rust เป็นสตริง JSON ด้วย serde_json?
คำตอบ
ฟังก์ชัน serde_json::to_string() แปลงค่าที่ implement Serialize ให้เป็นสตริง JSON มันคืนค่า Result<String, Error> เพราะการ serialization อาจล้มเหลวในบางกรณี สำหรับเอาต์พุตที่จัดรูปแบบด้วยการเยื้อง ให้ใช้ serde_json::to_string_pretty() หากต้องการเขียนลงใน Writer โดยตรง ให้ใช้ serde_json::to_writer()
จะ deserialize สตริง JSON เป็น struct ของ Rust ด้วย serde_json ได้อย่างไร?
ควรใช้แอตทริบิวต์ serde ใดในการเปลี่ยนชื่อฟิลด์ระหว่างการ serialization?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Rust อื่นๆ
พื้นฐาน Rust
Ownership & Borrowing
Structs & Enums
การจัดการข้อผิดพลาด
คอลเลกชัน
โมดูลและแพ็กเกจ
Traits
Generics
Lifetimes
Iterators & Closures
Smart Pointers
Concurrency Basics
async/await
Testing
Cargo & Ecosystem
Pattern Matching
มาโคร
Unsafe Rust
Trait ขั้นสูง
Lifetime ขั้นสูง
Type System
Tokio & Async I/O
การเพิ่มประสิทธิภาพ
Memory Management
Web Frameworks
Database Integration
Design Pattern ของ Rust
เชี่ยวชาญ Rust สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี