क्या Rust में मॉड्यूलो ऑपरेशन (शेषफल नहीं) मौजूद है?
सभी को नमस्ते! मैंने हाल ही में Rust सीखना शुरू किया है, Python से आया हूँ, और एक अप्रत्याशित समस्या का सामना किया। Python में मैं इस बात का आदी था कि `%` ऑपरेटर हमेशा गैर-ऋणात्मक परिणाम देता है, यानी गणितीय मॉड्यूलो। उदाहरण के लिए, Python में `(-5) % 3` का परिणाम `1` होता है। यह चक्रीय इंडेक्स, घड़ी के समय, सप्ताह के दिनों और किसी भी रिंग अंकगणित के लिए बहुत सुविधाजनक है।
लेकिन Rust में `%` ऑपरेटर, जैसा कि मैंने पाया, शेषफल (remainder) देता है, मॉड्यूलो नहीं। और ऋणात्मक संख्याओं के लिए यह अलग व्यवहार करता है: Rust में `(-5) % 3` का परिणाम `-2` होता है। यह मेरे सारे तर्क को तोड़ देता है! मैं एक सरल फंक्शन लिख रहा हूँ जो ऐरे में इंडेक्स को शिफ्ट करता है:
```rust
fn shift_index(current: usize, delta: i32, len: usize) -> usize {
let new_index = (current as i32 + delta) % len as i32;
new_index as usize
}
```
जब `delta` ऋणात्मक होता है, तो...