我有这个代码:
fn main() {
let mut args = std::env::args();
if let Some(name) = args.next() {
if let Some(first) = args.next() {
println!("One arg provided to {}: {}", name, first);
}
}
}
Run Code Online (Sandbox Code Playgroud)
有可能有两个if let?我试过了:
fn main() {
if let Some(name) = args.next() && Some(first) = args.next() {
println!("one arg provided to {}: {}", name, first);
}
}
Run Code Online (Sandbox Code Playgroud)
和
fn main() {
if let Some(name) = args.next() && let Some(first) = args.next() {
println!("one arg provided to {}: {}", name, first);
}
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.这该怎么做?
您可以使用"融合"迭代器将多个值收集到元组中并使用if let它:
fn main() {
let mut args = std::env::args().fuse();
if let (Some(a), Some(b)) = (args.next(), args.next()) {
println!("{}, {}", a, b);
}
}
Run Code Online (Sandbox Code Playgroud)
(在操场上的例子)
fuse保证在next返回None一次后,每次通话next都会给出None.
| 归档时间: |
|
| 查看次数: |
417 次 |
| 最近记录: |