Avatar ·

Rust में संख्यात्मक प्रकारों को सुरक्षित और मुहावरेदार तरीके से कैसे बदलें?

नमस्ते! मैंने हाल ही में Rust सीखना शुरू किया है और संख्याओं को बदलने की समस्या का सामना किया। अन्य भाषाओं (C++, Python) में मैं बस `(int)float_var` या `int(float_var)` लिखता था, और सब काम करता था। लेकिन Rust में कंपाइलर लगातार शिकायत करता है। यहाँ कोड का एक उदाहरण है जो मैं लिखने की कोशिश कर रहा हूँ: ```rust fn main() { let a: u8 = 10; let b: u16 = 20; let sum = a + b; // त्रुटि: cannot add `u16` to `u8` let pi: f64 = 3.14159; let int_pi: u32 = pi; // त्रुटि: expected `u32`, found `f64` let x: i32 = 100; let y: u32 = x; // त्रुटि: expected `u32`, found `i32` } ``` मैं समझता हूँ कि Rust सख्ती से टाइप किया गया है, लेकिन ऐसे रूपांतरण सही तरीके से कैसे करें? मैंने `as` के बारे में सुना है, लेकिन यह ओवरफ्लो होने पर खतरनाक व्यवहार करता है। क्या सुरक्षित और मुहावरेदार तरीके हैं? मुझे चाहिए: 1. विभिन्न आकारों के पूर्णांकों के बीच रूपांतरण (u8 -> u16, i32 -> u64) 2. साइन और अनसाइन किए गए प्रकारों के बीच रूपांतरण 3. फ्लोटिंग पॉइंट संख्याओं को पूर्णांकों में और इसके विपरीत रूपांतरण 4. हैंडल करना