كيفية إنشاء سلسلة عشوائية بطول معين في 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` تلقائيًا، لكنني لست متأكدًا من أن هذا هو أفضل نهج.