Avatar ·

Rust में स्ट्रिंग से इंडेक्स द्वारा कैरेक्टर कैसे प्राप्त करें?

मैंने अभी Rust सीखना शुरू किया है और एक समस्या का सामना किया जो मुझे बहुत अजीब लगती है। अन्य भाषाओं में, जैसे Python या JavaScript में, मैं आसानी से स्ट्रिंग से इंडेक्स द्वारा कैरेक्टर प्राप्त कर सकता हूँ: `"hello"[0]` मुझे `'h'` देगा। लेकिन जब मैंने Rust में ऐसा ही करने की कोशिश की, तो compiler ने error दी। यहाँ मेरा कोड है: ```rust fn main() { let s = String::from("Привет, мир!"); let first = s[0]; // Error! println!("पहला कैरेक्टर: {}", first); } ``` Compiler कुछ इस तरह कहता है: "the type `String` cannot be indexed by `{integer}`"। मैं समझता हूँ कि Rust एक safe भाषा है, लेकिन इंडेक्स द्वारा कैरेक्टर क्यों नहीं ले सकते? आखिर अन्य भाषाओं में यह काम करता है! तो मैं सही तरीके से स्ट्रिंग से कैरेक्टर कैसे प्राप्त करूँ? मैं क्या गलत कर रहा हूँ? मुझे स्ट्रिंग के प्रत्येक कैरेक्टर को अलग-अलग प्रोसेस करना है, उदाहरण के लिए, यह जाँचने के लिए कि पहला कैरेक्टर letter है या digit। कृपया बताएँ कि Rust में यह कैसे करें। <<>>

Rust सीधे स्ट्रिंग को इंडेक्स करने की अनुमति क्यों नहीं देता?

Rust में, स्ट्रिंग्स UTF-8 एन्कोडेड होती हैं, जिसमें कैरेक्टर वेरिएबल बाइट्स ले सकते हैं। इंडेक्सिंग O(1) एक्सेस देती है, लेकिन यह बाइट बाउंड्री पर काम करती है, जो कैरेक्टर बाउंड्री से मेल नहीं खा सकती। इसलिए Rust इसे रोकता है ताकि रनटाइम एरर से बचा जा सके।