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` ऑटोमैटिकली इनिशियलाइज़ होता है, लेकिन फिर भी यकीन नहीं है कि यह सबसे अच्छा तरीका है।