Random 如何在结构中存储随机数生成器?
我试图在结构中存储一个随机数生成器。我似乎无法识别任何Rng结构的结构定义,如ThreadRng。这项工作:Random 如何在结构中存储随机数生成器?,random,rust,Random,Rust,我试图在结构中存储一个随机数生成器。我似乎无法识别任何Rng结构的结构定义,如ThreadRng。这项工作: use rand::{ self, distributions::{Distribution, Uniform}, }; // 0.6.4 fn main() { let mut rng = rand::thread_rng(); let die_range = Uniform::new_inclusive(1, 6); let die = d
use rand::{
self,
distributions::{Distribution, Uniform},
}; // 0.6.4
fn main() {
let mut rng = rand::thread_rng();
let die_range = Uniform::new_inclusive(1, 6);
let die = die_range.sample(&mut rng);
println!("{}", die);
}
但是,如果我试图定义一个变量,使其具有Rng的实际类型,我会得到一个错误:
use rand::{
self,
ThreadRng,
distributions::{Distribution, Uniform},
}; // 0.6.4
fn main() {
let mut rng :ThreadRng = rand::thread_rng();
let die_range = Uniform::new_inclusive(1, 6);
let die = die_range.sample(&mut rng);
println!("{}", die);
}
错误是:
error[E0432]: unresolved import `rand::ThreadRng`
--> src/main.rs:3:5
|
3 | ThreadRng,
| ^^^^^^^^^
| |
| no `ThreadRng` in the root
| help: a similar name exists in the module: `thread_rng`
我想将Rng存储在一个结构中,但我不想要trait对象。如何导入ThreadRng的定义?或者XorShiftRng(可能更快-我不需要加密强度)?是我不知道的子模块中的类型吗?我在线阅读的所有示例都调用一个方法来获取Rng并在本地使用它;它们从不将其存储在结构中,也从不定义任何使用结构名称的变量。如果查看文档,可以单击其返回类型,查看其完全限定名称是否为。根据文档,类型实际上为。你试过了吗?没有。我错过了那张小纸条。阅读源代码没有给我任何线索。它是有效的!把它贴出来作为回答,我会接受的。花了一个小时尝试各种事情。。。谢谢