function - 为什么我不能用两个 i32 参数调用 gen_range ?
问题描述
我有这段代码,但它没有编译:
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
参数,所以更改:
let secret_number = rand::thread_rng().gen_range(0, 101);
至:
let secret_number = rand::thread_rng().gen_range(0..101);
它会编译并工作。注意:方法签名在 crate 的版本0.8.0
中进行了更新,在rand
crate 的所有先前版本中,您的代码应该按原样工作。
推荐阅读
- javascript - 在 EnableX 中连接到房间时,我收到一条错误消息 - “令牌无效”
- python - Pandas bfill 在填充前操纵值
- c# - 无法访问任务的结果属性
- angular - 在Angular中单击电子邮件中的链接后如何实现对特定页面的重定向
- android-studio - 在android studio中运行应用程序后设备更改为未知
- java - ojdbc resultSet.next() 触发下一行的网络通信
- mongodb - MongoDB 可以使用通配符索引进行交集吗?
- electron - (节点:15864)UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“匹配”
- iphone - iphone连接到ubuntu
- html - 使用 alpha 继承父背景颜色会使子背景颜色不同。为什么?