怎么让下面的函数编译通过。
error[E0308]: mismatched types
--> src/main.rs:9:31
|
8 | Ok(1).map(|n| async { add(n).await })
| ---------------- the expected `async` block
9 | .unwrap_or_else(|_| async { 0 }).await
| ^^^^^ expected `async` block, found a different `async` block
|
= note: expected `async` block `[static generator@src/main.rs:8:25: 8:41]`
found `async` block `[static generator@src/main.rs:9:31: 9:36]`
Ext Link: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=eb36dc8c7519459f9372c70980d1c881
1
共 2 条评论, 1 页
评论区
写评论谢谢,了解是怎么回事了
--
👇
Bai-Jinlin: unwarp的时候要求闭包返回的T和你Result的T一致,你map过后Result的T是一个匿名的实现了Future的类型,unwarp里的虽然也是实现Future的匿名类型但是和你map过后的Result T不是一个类型,所以报错了。 不过你可以这么改一下。
unwarp的时候要求闭包返回的T和你Result的T一致,你map过后Result的T是一个匿名的实现了Future的类型,unwarp里的虽然也是实现Future的匿名类型但是和你map过后的Result T不是一个类型,所以报错了。 不过你可以这么改一下。