012 Rust 异步编程,在 async 块中使用?

在Rust异步编程中能否像在同步编程中一样使用问号呢?我们来试试。

示例

  • 源码
[dependencies]
futures = "0.3"
  • 配置文件
use futures;

async fn foo() -> Result<(), String>{
    "foo";
    Ok(())
}

async fn func() -> Result<(), String>{

    let fut = async {
        foo().await?;
        Ok::<(), String>(()) // <- note the explicit type annotation here
        //Ok(()) // <- note the explicit type annotation here
    };

    fut.await
}

fn main() {
    let _ = futures::executor::block_on(func());
    println!("Hello, world!");

}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。