Go स्ट्रिंग में बाइट्स नहीं, बल्कि कैरेक्टर (रून) की संख्या कैसे प्राप्त करें?
सभी को नमस्ते! मैंने अभी-अभी Go सीखना शुरू किया है और स्ट्रिंग में कैरेक्टर गिनने में एक समस्या का सामना किया। मैं एक छोटा पासवर्ड वैलिडेटर लिख रहा हूँ: यह जाँचना है कि पासवर्ड की लंबाई 8 कैरेक्टर से कम न हो। मैंने ऐसा कोड लिखा:
```go
package main
import "fmt"
func main() {
password := "пароль"
if len(password) < 8 {
fmt.Println("पासवर्ड बहुत छोटा है")
}
}
```
लेकिन प्रोग्राम "पासवर्ड बहुत छोटा है" प्रिंट करता है, जबकि स्ट्रिंग "пароль" 6 रूसी अक्षरों से बनी है, 8 से नहीं। मुझे उम्मीद थी कि len() 6 लौटाएगा, लेकिन यह 12 लौटाता है (अगर मैंने सही समझा)। ऐसा लगता है कि len() बाइट्स गिनता है, कैरेक्टर नहीं। Go में स्ट्रिंग में कैरेक्टर की संख्या सही तरीके से कैसे गिनें? क्या Unicode को ध्यान में रखना ज़रूरी है, अगर स्ट्रिंग में सिरिलिक या इमोजी हों? कोड उदाहरणों के लिए आभारी रहूँगा।
टैग: स्ट्रिंग्स, रून्स