我有以下类型的递归并按预期工作:
fn test2(i: isize) -> (isize) {
println!("i={}", i);
return (i + 1);
}
fn main() {
let mut i = 1;
let mut j = 1;
for t in 0..4 {
(i) = test2(i);
}
}
i=1
i=2
i=3
i=4
我的问题是,我真正想要的是这个递归,有像这样的多个反馈……
fn test(i: isize, j: isize) -> (isize, isize) {
println!("i={} j={}", i, j);
return (i + 1, j + 1);
}
fn main() {
for t in 0..4 {
let (i, j) = test(i, j);
println!("ii {} jj {}", i, j);
}
}
当我运行代码时,我得到以下信息:
i=1 j=1
ii 2 jj 2
i=1 j=1
ii 2 jj 2
i=1 j=1
ii 2 jj 2
i=1 j=1
ii 2 jj 2
如果我不使用let,我会得到以下错误:
for t in 0 .. 4 {
(i,j) = test(i, j);
println!("ii {} jj {}", i,j) ;
}
error[E0070]: invalid left-hand side expression
--> src/main.rs:265:13
|
265 | (i,j) = test(i, j);
| ^^^^^^^^^^^^^^^^^^ left-hand of expression not valid
我该如何解决?