rand.Seed(SEED) 已弃用,如何使用 NewRand(NewSeed( ) )?

2024-03-06

我现在正在学习go。

我举个例子,我有这条线

rand.Seed(SEED) 

但是关于 go 的 vscode 扩展告诉我

rand.Seed 自 Go 1.20 起已被弃用,自 Go 1.0 起出现了替代方案:调用 Seed 并期望从全局随机源(使用 Int 等函数)获得特定结果序列的程序在依赖项更改时可能会被破坏它从全局随机源消耗了多少。为了避免此类损坏,需要特定结果序列的程序应使用 NewRand(NewSource(seed)) 来获取其他包无法访问的随机生成器。 (SA1019)

我无法理解如何使用NewRand(NewSource(seed))正如建议的那样。

我找到了有关 NewSource 的文档https://pkg.go.dev/math/rand#NewSource https://pkg.go.dev/math/rand#NewSource

但没有关于a的文档NewRand功能

新推荐的等效值是多少rand.Seed(SEED) ?


The Go 1.20 种子文档 https://pkg.go.dev/math/rand@go1.20#Seed有错字。使用rand.New(rand.NewSource(seed))如中所述最新文档 https://pkg.go.dev/math/rand@master#SeedGo 1.20 发行说明 https://tip.golang.org/doc/go1.20.

创建随机源并使用源上的方法而不是调用包函数:

  r := rand.New(rand.NewSource(seed))
  fmt.Println(r.Uint64())
  fmt.Println(r.Uint64())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rand.Seed(SEED) 已弃用,如何使用 NewRand(NewSeed( ) )? 的相关文章

随机推荐