如何重复使用"结果"?



以下内容无法编译。 使这项工作的规范方法是什么?

let file = File::open(&args.path)?;
let reader = BufReader::new(file);
for line in reader.lines() {
if line?.contains(&args.pattern) {
println!("{}", line?);
}
}

为完整起见,以下是错误消息:

34 |      println!("{}", line?);
|                     ^^^^ value used here after move

在您的示例中,line是一个Result,当您使用?时会移动它(但是在您解开其内容后,我们真的需要Result吗???(。为了缓解您的问题,让我们在同名的局部变量中隐藏Result的值。

for line in reader.lines() {
let line = line?;
if line.contains(&args.pattern) {
println!("{}", line);
}
}

相关内容

  • 没有找到相关文章

最新更新