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

时间:2014-12-26 16:42:33

标签: global-variables rust static-variables

我已经尝试过两次

static mut rng:XorShiftRng = XorShiftRng::new_unseeded();
static mut rng:Rng + 'static = rand::weak_rng();

但是都不行。这是一种方法吗?

修改

我想创建一个具有一些需要随机数的递归函数的模块。我不希望用户提供随机数生成器,我也不想向用户提供结构。所以我希望有一个模块化的RNG。

1 个答案:

答案 0 :(得分:0)

Rust 1.0

在Rust 1.0中,task_rng已移至rand包,现在称为thread_rng

<强>原始

如果您只是希望能够拥有免费的随机数生成器,我建议您查看TaskRng

  

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

您可以随时将其中一个作为易于使用的RNG抓住。

顺便说一句:我总是发现能够提供自己的RNG代码是有用的。当消费者不需要这种能力时,有一个默认值是没关系的,但是重现特定随机数串的能力对于性能或功能测试非常有用,例如。