我有一个测试程序,我需要在其中生成一个随机数。因此,我做了一个测试比较使用
"uVal = rand::task_rng().gen();"
与使用例如创建对象相比,每次生成随机数时。:
let mut oRandom = std::rand::task_rng()
并生成多个随机数。使用创建的对象(oRandom)要快得多,所以我认为我应该将对象传递给生成随机数的函数,但是我一直无法找到一种方法来做到这一点。这并不重要,但我认为可以做到。
示例 1:不使用对象:(比 2 慢得多)
let mut uVal : u8;
for _ in range(1, iMax) {
uVal = std::rand::task_rng().gen();
示例 2:使用对象:(比 1 快得多)
let mut oRandom = std::rand::task_rng();
let mut uVal : u8;
for _ in range(1, iMax) {
uVal = oRandom.gen();
示例 3:我尝试将对象传递给函数:
12 let mut oRandom = std::rand::task_rng();
13 fTest03(iMax, &mut oRandom);
53 fn fTest03(iMax : i64, oRandom : &mut std::rand::task_rng) {
This results in the following error :
test_rand003.rs:53:38: 53:57 error: use of undeclared type name
`std::rand::task_rng`
test_rand003.rs:53 fn fTest03(iMax : i64, oRandom : &mut std::rand::task_rng) {
如何将上面第 13 行中的变量“oRandom”传递给函数?