【发布时间】:2021-11-28 11:01:07
【问题描述】:
这里是开始:
let fb = BufReader::new(&f);
let lines = fb.lines();
let bank_sequence = read_1_sequence(&mut count, lines);
print_seq(&bank_sequence);
这里是 read_1_sequence 函数:
fn read_1_sequence<B: BufRead>(count: &mut u8, lines: Lines<B>)
// ...
for line in lines {
let the_line = line.unwrap();
if the_line.len() > 0 {
let first = &the_line[0..1];
if first == ">" {
// etc.
但是,如果对 read_1_sequence 的调用处于循环中,如下所示:
loop {
let bank_sequence = read_1_sequence(&mut count, lines);
print_seq(&bank_sequence);
}
我收到(显然)消息:
26 | let lines = fb.lines();
| ----- move occurs because `lines` has type `std::io::Lines<BufReader<&File>>`, which does not implement the `Copy` trait
...
29 | let bank_sequence = read_1_sequence(&mut count, lines);
| ^^^^^ value moved here, in previous iteration of loop
有解决办法吗?感谢您的任何提示。
祝你(编程)愉快!
【问题讨论】:
标签: function loops rust iterator arguments