Maison >développement back-end >Golang >rand.Seed(SEED) est obsolète, comment utiliser NewRand(NewSeed( ) ) ?
L'éditeur php Xigua est là pour partager une solution avec vous. Lorsque nous utilisons rand.Seed(SEED) est obsolète, nous pouvons utiliser NewRand(NewSeed()) à la place. La fonction NewSeed() peut générer une nouvelle graine, et la fonction NewRand() peut utiliser cette nouvelle graine pour générer des nombres aléatoires. Cette approche nous aide à continuer à utiliser la fonctionnalité de génération de nombres aléatoires sans que les limitations de rand.Seed(SEED) soient obsolètes. De cette façon, nous pouvons facilement résoudre ce problème et continuer à utiliser la fonctionnalité de génération de nombres aléatoires.
J'apprends à aller maintenant.
Je suis un exemple, j'ai cette ligne
rand.seed(seed)
Mais l'extension vscode pour go m'a dit
rand.Seed has been deprecated since Go 1.20 and an alternative has been available since Go 1.0: Programs that call Seed and then expect a specific sequence of results from the global random source (using functions such as Int) can be broken when a dependency changes how much it consumes from the global random source. To avoid such breakages, programs that need a specific result sequence should use NewRand(NewSource(seed)) to obtain a random generator that other packages cannot access. (SA1019)
Je n'arrive pas à comprendre comment utiliser newrand(newsource(seed))
comme suggéré.
J'ai trouvé la documentation sur newsource https://pkg.go.dev/math/rand#newsource
Mais il n'y a aucune documentation sur la fonction newrand
Quel est le nouvel équivalent recommandé de rand.seed(seed)
? rand.seed(seed)
等效项是什么?
go 1.20 种子文档有一个拼写错误。按照最新文档中的说明使用 rand.new(rand.newsource(seed))
Solution de contournement
Il y a une faute d'orthographe. Suivez les instructions dans la dernière documentationrand.new(rand.newsource(seed)) code> a> et
notes de version go 1.20🎜. 🎜 🎜 Créez une source aléatoire et utilisez des méthodes sur la source au lieu d'appeler les fonctions du package : 🎜r := rand.New(rand.NewSource(seed)) fmt.Println(r.Uint64()) fmt.Println(r.Uint64())
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!