如何在不收到 "Unsed Variable" 警告的情况下获取用户输入?
How can I get user input without receiving an "Unsed Variable" warning?
我正在研究 Rust 并决定构建一个小程序来接收用户的输入并打印它,但也想用它做一些数学练习以供练习。目前,这就是我接受用户输入的方式:
let mut number = String::new();
let input = io::stdin().read_line(&mut number)
.ok()
.expect("Failed to read line");
println!("You entered {}", number);
然而,尽管我确实通过这种方式获得了正确的输入,但 Cargo 给了我以下警告:
src/main.rs:10:9: 10:14 warning: unused variable: input
, #[warn(unused_variables)] on by default
src/main.rs:10 let input = reader.read_line(&mut number)
如果我只使用 input
变量,无论我输入什么数字,当我打印数字时,我都会在 return 中得到一个“2”。
如何避免警告?有没有其他方法可以让我在不创建 2 个变量绑定的情况下获取输入?
您可以简单地不将值写入变量。只要没有标明值的类型must_use
,就可以忽略该值
let mut number = String::new();
io::stdin().read_line(&mut number)
.ok()
.expect("Failed to read line");
println!("You entered {}", number);
[商业]
您可以使用 text_io
crate 进行超短且可读的输入,例如
let i: i32 = read!()
let tup: (i32, String) = read!("{}, {}");
[/商业]
它会创建一个警告,因为您正在为一个从未使用过的变量分配 space。
当遇到此类警告时,您可以将有问题的变量替换为 _
let _ = io::stdin().read_line(&mut number) ...
或者如 ker 所述,完全删除变量
io::stdin().read_line(&mut number)...
_
也适用于其他情况,例如参数或 match
子句。
另一个选项是在模块或 crate 中添加 #[allow(unused_variables)]
并禁用未使用的变量警告。虽然,我不推荐。
我正在研究 Rust 并决定构建一个小程序来接收用户的输入并打印它,但也想用它做一些数学练习以供练习。目前,这就是我接受用户输入的方式:
let mut number = String::new();
let input = io::stdin().read_line(&mut number)
.ok()
.expect("Failed to read line");
println!("You entered {}", number);
然而,尽管我确实通过这种方式获得了正确的输入,但 Cargo 给了我以下警告:
src/main.rs:10:9: 10:14 warning: unused variable:
input
, #[warn(unused_variables)] on by defaultsrc/main.rs:10 let input = reader.read_line(&mut number)
如果我只使用 input
变量,无论我输入什么数字,当我打印数字时,我都会在 return 中得到一个“2”。
如何避免警告?有没有其他方法可以让我在不创建 2 个变量绑定的情况下获取输入?
您可以简单地不将值写入变量。只要没有标明值的类型must_use
,就可以忽略该值
let mut number = String::new();
io::stdin().read_line(&mut number)
.ok()
.expect("Failed to read line");
println!("You entered {}", number);
[商业]
您可以使用 text_io
crate 进行超短且可读的输入,例如
let i: i32 = read!()
let tup: (i32, String) = read!("{}, {}");
[/商业]
它会创建一个警告,因为您正在为一个从未使用过的变量分配 space。
当遇到此类警告时,您可以将有问题的变量替换为 _
let _ = io::stdin().read_line(&mut number) ...
或者如 ker 所述,完全删除变量
io::stdin().read_line(&mut number)...
_
也适用于其他情况,例如参数或 match
子句。
另一个选项是在模块或 crate 中添加 #[allow(unused_variables)]
并禁用未使用的变量警告。虽然,我不推荐。