在搜索如何使用Rust生成随机数时,我遇到了以下示例 . 但是,它似乎没有用......示例似乎没有显示它适用于哪个版本的Rust,所以也许它已经过时了,或者我可能出错了 .
// http://static.rust-lang.org/doc/master/std/rand/trait.Rng.html
01 use std::rand;
02 use std::rand::Rng;
03
04 fn main() {
05 let mut rng = rand::task_rng();
06 let n: uint = rng.gen_range(0u, 10);
07 println!("{}", n);
08 let m: float = rng.gen_range(-40.0, 1.3e5);
09 println!("{}", m);
10 }
当我尝试编译它时,会产生以下结果:
test_rand002.rs:6:17: 6:39 error: type `@mut std::rand::IsaacRng` does not
implement any method in scope named `gen_range`
test_rand002.rs:6 let n: uint = rng.gen_range(0u, 10);
^~~~~~~~~~~~~~~~~~~~~~
test_rand002.rs:8:18: 8:46 error: type `@mut std::rand::IsaacRng` does not
implement any method in scope named `gen_range`
test_rand002.rs:8 let m: float = rng.gen_range(-40.0, 1.3e5);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
error: aborting due to 2 previous errors
在同一页面(上面)上有另一个例子(如下所示)可以工作 . 然而,它并没有完全符合我的要求,尽管我可以适应它 .
其他例子(有效):
use std::rand;
use std::rand::Rng;
fn main() {
let mut rng = rand::task_rng();
let x: uint = rng.gen();
println!("{}", x);
println!("{:?}", rng.gen::());
}
如何在给定范围内使用Rust(例如:i64)生成“简单”随机数(例如:0到n)?