Avatar ·

Go में rune क्या है और यह byte से कैसे अलग है?

सभी को नमस्कार! मैंने अभी-अभी Go सीखना शुरू किया है और मुझे एक अजीब डेटा प्रकार — rune मिला। मैंने दस्तावेज़ पढ़ा, लेकिन पूरी तरह से समझ नहीं आया कि इसकी आवश्यकता क्यों है। मैं strings के साथ काम करने और उन्हें iterate करने की कोशिश कर रहा हूँ। मैंने यह कोड लिखा: ```go package main import "fmt" func main() { s := "Привет, мир!" for i := 0; i < len(s); i++ { fmt.Printf("%c ", s[i]) } } ``` लेकिन अपेक्षित अक्षरों के बजाय मुझे कुछ गड़बड़ मिली: `П Ð Ð¸ в е Ñ , м и Ñ !`। मैंने स्ट्रिंग के प्रत्येक अक्षर को क्रम से देखने की उम्मीद की, लेकिन आउटपुट स्पष्ट रूप से वैसा नहीं है जैसा मैं चाहता था। ऐसा क्यों होता है? फिर मैंने लूप को `for i, r := range s` से बदल दिया, और सब कुछ सही ढंग से काम करने लगा। दस्तावेज़ में लिखा है कि `r` का प्रकार `rune` है। कृपया समझाएँ: 1. सरल शब्दों में `rune` क्या है? 2. `byte` और `rune` में क्या अंतर है? 3. `rune` का उपयोग कब करना चाहिए और `byte` का कब? 4. सिर्फ index वाला साधारण लूप सिरिलिक के लिए काम क्यों नहीं करता, जबकि `range` काम करता है? पहले से धन्यवाद!