Avatar ·

Go में दी गई लंबाई की रैंडम स्ट्रिंग कैसे जनरेट करें?

सभी को नमस्ते! मैंने अभी Go सीखना शुरू किया है और एक समस्या का सामना किया: मुझे फिक्स्ड लंबाई की रैंडम स्ट्रिंग जनरेट करनी है, उदाहरण के लिए टेम्पररी पासवर्ड या सेशन आइडेंटिफायर बनाने के लिए। मैंने `math/rand` पैकेज का उपयोग करने की कोशिश की और बस अक्षरों के सेट से रैंडम कैरेक्टर चुने, लेकिन एक समस्या आई — स्ट्रिंग्स पूरी तरह से रैंडम नहीं होतीं, और कभी-कभी दोहराई भी जाती हैं। यह मेरा मौजूदा कोड है: ```go package main import ( "fmt" "math/rand" ) func main() { fmt.Println(randString(10)) } func randString(n int) string { var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") b := make([]rune, n) for i := range b { b[i] = letters[rand.Intn(len(letters))] } return string(b) } ``` समस्या यह है कि प्रोग्राम के हर रन पर मुझे एक ही स्ट्रिंग मिलती है, अगर मैं `rand.Seed` नहीं कॉल करता। मैंने पढ़ा कि Go 1.20 में `math/rand` ऑटोमैटिकली इनिशियलाइज़ होता है, लेकिन फिर भी यकीन नहीं है कि यह सबसे अच्छा तरीका है।