Avatar ·

Rust में Result को Option में बदलने का स्वच्छ तरीका

नमस्ते साथियों! मैंने अभी Rust सीखना शुरू किया है और एक सामान्य स्थिति का सामना किया: मेरे पास एक फंक्शन है जो `Result` लौटाता है, लेकिन आगे के काम के लिए मुझे `Option` चाहिए। उदाहरण के लिए, मैं एक एनवायरनमेंट वेरिएबल पढ़ रहा हूँ:\n\n```rust\nuse std::env;\n\nfn main() {\n let port: Option = env::var("PORT") // Result\n .and_then(|s| s.parse()) // Result\n .ok(); // ???\n}\n```\n\nमुझे पता है कि `.ok()` का उपयोग किया जा सकता है, जो एरर को छोड़कर `Result` को `Option` में बदल देता है। लेकिन मुझे यह बहुत स्वच्छ तरीका नहीं लगता — हम एरर की जानकारी खो देते हैं। क्या कोई अधिक इडियोमैटिक तरीका है?\n\nदूसरी समस्या: मेरे पास कई `Result` के साथ एक चेन कॉल है, और मैं उन्हें `Option` में बदलना चाहता हूँ।