为什么不能用两个i32参数调用gen_range? [英] Why can't I call gen_range with two i32 arguments?
本文介绍了为什么不能用两个i32参数调用gen_range?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下代码,但无法编译:
I have this code but it doesn't compile:
use rand::Rng;
use std::io;
fn main() {
println!("Guess the number!");
let secret_number = rand::thread_rng().gen_range(0, 101);
println!("The secret number is: {}", secret_number);
println!("Please input your guess.");
let mut guess = String::new();
io::stdin()
.read_line(&mut guess)
.expect("Failed to read line");
println!("You guessed: {}", guess);
}
编译错误:
error[E0061]: this function takes 1 argument but 2 arguments were supplied
--> src/main.rs:7:44
|
7 | let secret_number = rand::thread_rng().gen_range(0, 101);
| ^^^^^^^^^ - --- supplied 2 arguments
| |
| expected 1 argument
推荐答案
gen_range
方法需要一个 Range
参数,而不是两个 i32
参数,因此请更改:
The gen_range
method expects a single Range
argument, not two i32
arguments, so change:
let secret_number = rand::thread_rng().gen_range(0, 101);
收件人:
let secret_number = rand::thread_rng().gen_range(0..101);
它将编译并运行.注意:方法签名已在 rand
板条箱的 0.8.0
版本中更新,在所有以前的板条箱版本中,您的代码应按原样工作.
And it will compile and work. Note: the method signature was updated in version 0.8.0
of the rand
crate, in all prior versions of the crate your code should work as-is.
这篇关于为什么不能用两个i32参数调用gen_range?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文