當使用Rust搜索如何生成一個隨機數時,我遇到了下面的例子。然而,它似乎沒有工作......這個例子似乎沒有顯示它適用於哪個版本的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::<(f64, bool)>());
}
如何可以產生一個 「簡單」 使用隨機數鏽:一個給定的範圍內(例如I64)(例如:0到n)?
鏈接http://static.rust-lang.org/doc/master/意味着版本是高手。 –
快速注意到下面的答案似乎都不適用於Rust 1.7。 – frabcus