我想在异步FN中使用递归,就像:
async fn test(data: i32) -> i32 {
if data == 0 {
0
} else {
test(data - 1).await
}
}
但它说,async fn
中的递归需要拳击.
所以我把它改成这样:
async fn test(data: i32) -> BoxFuture<'static, i32> {
async move {
if data == 0 {
0
} else {
test(data - 1).await.await
}
}
.boxed()
}
但它再次编译错误,并显示消息:计算类型为test::{opaque#0}
时使用周期
我应该做些什么来修复它呢?