首页 > 其他分享 >Rust async 关键字

Rust async 关键字

时间:2023-07-01 18:33:48浏览次数:38  
标签:i32 dd await dbg 关键字 fn async Rust

async

观察代码:

async fn dd(a: i32) -> i32 {
    dbg!(a);
    2 * a
}

异步方法内可以执行await,很显然上面的代码等价于下面两种形式:

async fn dd(a: i32) -> i32 {
    dbg!(a);
    async { 2 * a }.await
}

async fn dd(a: i32) -> i32 {
    async move { 
      dbg!(a);
      2 * a
    }.await
}

只有执行await,一个异步方法或者异步代码块才会被执行,所以上面的代码其实又等价于:

fn dd(a: i32) -> impl Future<Output = i32> {
    async move { 
      dbg!(a);
      2 * a
    }
}

看起来,我们就像直接返回了一个异步代码块!这个块也是需要执行await才会被执行的。它们的调用都是:

let a = dd(10).await;
assert_eq!(a, 20);

标签:i32,dd,await,dbg,关键字,fn,async,Rust
From: https://www.cnblogs.com/develon/p/17519707.html

相关文章

  • 1688阿里巴巴接口中国站按关键字搜索商品API接口采集宝贝详情数据演示案例
     按关键字搜索商品API接口的作用是通过输入关键字来搜索相关的商品信息。这个API接口允许开发者和商家根据用户输入的关键字进行商品搜索,以便展示相关的商品结果给用户。使用按关键字搜索商品API接口,可以实现以下功能:商品搜索:根据用户输入的关键字,通过API接口向电商平台发送搜索请......
  • 1688阿里巴巴接口中国站按关键字搜索商品API接口采集宝贝详情数据演示案例
    ​ 按关键字搜索商品API接口的作用是通过输入关键字来搜索相关的商品信息。这个API接口允许开发者和商家根据用户输入的关键字进行商品搜索,以便展示相关的商品结果给用户。使用按关键字搜索商品API接口,可以实现以下功能:商品搜索:根据用户输入的关键字,通过API接口向电商平台发......
  • Java标识符和关键字
    关键字关键字关键字关键字关键字abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseenumextendsfinalfinallyfloatforgotoifimplementsimportinstanceofintinterfacelongnativenewpackag......
  • [C#基础学习]关键字Ref
    相当于C++中传参时的星号,例如:voidswap(int*a,int*b){intt=a;a=b;b=t;}上述会直接改变a和b的值,不需要交换。原因是其作为指针直接指向a和b的地址并修改。而C#中则是voidswap(refinta,refintb){ intt=a;a=b;b=t;}......
  • docker-compose中的links和depend_on关键字
    linkslink关键字用于在不同的容器之间创建网络链接。它允许一个容器能够访问另一个容器的网络连接信息(如IP地址和端口)。使用方法:在DockerCompose配置文件中,通过links关键字定义容器之间的链接关系。例如:version:'3'services:web:build:.links:-db......
  • Java基础02:关键字和标识符
    一、关键字abstractassertbooleanbreakbytecasecatchcharclassconstcontinuedefaultdodoubleelseenumextendsfinalfinallyfloatforgotoIfimplementsimportinstanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnstrictfpshortstaticsuperswitchsynchronizedthist......
  • volatile关键字的作用
    Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其他线程。volatile变量具备两种特性,volatile变量不会被缓存在寄存器或者对其他的处理不可见的地方,因此在读取volatile类型的变量时总会返回最新写入的值。变量可见性:其一是保证该变量对所有线程可见......
  • TypeScript又出新关键字了?
    TypeScript5.2将引入一个新的关键字:using。当它离开作用域时,你可以用Symbol.dispose函数来处置任何东西。{constgetResource=()=>{return{[Symbol.dispose]:()=>{console.log('Hooray!')}}}usingresource=getResource();......
  • 单继承、多继承下的属性查找、super关键字、多态与多态性、组合
    单继承下的属性查找单继承:一个类只能继承一个类。classC():passclassB(C):passclassA(B):#单继承pass单继承下的属性查找顺序:先从对象本身的名称空间中查找------>产生这个对象的类中去查找 ------>继承的父类中去查找#查找属性classFoo():......
  • 跨平台开源远程连接工具rustdesk
    rustdeskhttps://github.com/rustdesk/rustdeskhttps://gitee.com/mirrors/rustdesk......