Global variables 如何定义全局随机数生成器?

Global variables 如何定义全局随机数生成器?,global-variables,rust,static-variables,Global Variables,Rust,Static Variables,我两个都试过了 static mut rng:XorShiftRng = XorShiftRng::new_unseeded(); static mut rng:Rng + 'static = rand::weak_rng(); 但两者都不起作用。这是一种方式吗 编辑 我想制作一个模块,它有一些需要随机数的递归函数。我不希望用户提供随机数生成器,也不希望向用户提供结构。因此,我希望有一个模块化的RNG。Rust 1.0 在Rust 1.0中,task\u rng被移动到rand板条箱中,现在称

我两个都试过了

static mut rng:XorShiftRng = XorShiftRng::new_unseeded();
static mut rng:Rng + 'static = rand::weak_rng();
但两者都不起作用。这是一种方式吗

编辑


我想制作一个模块,它有一些需要随机数的递归函数。我不希望用户提供随机数生成器,也不希望向用户提供结构。因此,我希望有一个模块化的RNG。

Rust 1.0

在Rust 1.0中,
task\u rng
被移动到
rand
板条箱中,现在称为

原创

如果您只是想拥有免费随机数生成器,我建议您看看:

检索延迟初始化的任务本地随机数生成器(由系统播种)

您可以随时获取其中一个作为易于使用的RNG


顺便说一句:我总是发现能够提供自己的RNG代码很有用。当用户不需要该电源时,可以使用默认值,但重现特定随机数字符串的能力对于性能或功能测试非常有用。

简单的回答是,您不能。你能补充一点你为什么要这么做吗?这将有助于我们了解您想要做什么,以及什么样的答案是最好的。因此,您是说task_rng()函数调用总是返回相同的系统rng,而不会造成性能损失。是这样吗?获取完整信息,但每个任务(线程)都有自己的RNG,因此每个任务都会有一次微小的性能损失。