Rust में स्ट्रिंग के कैरेक्टर्स पर कैसे लूप करें? इंडेक्स द्वारा कैरेक्टर्स को ट्रैवर्स करना
सभी को नमस्ते! मैंने अभी Rust सीखना शुरू किया है और स्ट्रिंग्स के साथ काम करते समय एक समस्या का सामना किया। मुझे स्ट्रिंग के प्रत्येक कैरेक्टर पर जाकर उस पर कुछ कार्रवाई करनी है। अन्य भाषाओं (जैसे Python या C++) में मैं for लूप में इंडेक्स का उपयोग करने का आदी हूँ: `string[i]`। लेकिन Rust में यह काम नहीं करता।
यह मेरा कोड है जो कंपाइल नहीं होता:
```rust
fn main() {
let text = String::from("Привет, мир!");
for i in 0..text.len() {
println!("कैरेक्टर: {}", text[i]); // त्रुटि!
}
}
```
कंपाइलर त्रुटि देता है: `cannot index into a string of type String`। मैं समझता हूँ कि Rust में स्ट्रिंग्स केवल कैरेक्टर्स की array नहीं हैं, बल्कि UTF-8 में बाइट्स के अनुक्रम हैं। लेकिन फिर सभी कैरेक्टर्स को सही तरीके से कैसे ट्रैवर्स करूँ?
मुझे एक समाधान चाहिए जो Unicode के साथ सही ढंग से काम करे, जिसमें मल्टीबाइट कैरेक्टर्स (जैसे सिरिलिक, इमोजी) शामिल हों। साथ ही, यह जानना भी उपयोगी होगा कि न केवल कैरेक्टर बल्कि स्ट्रिंग में उसकी पोजीशन (इंडेक्स) भी कैसे प्राप्त करें। कृपया बताएं कि इसे सही और कुशलता से कैसे किया जाए?