每六周发布一次新版本,在每个新版本中,这里都有一个包含一些亮点: 1、Rust现在有一个与异步相关的新特性:IntoFuture。 。await语法可用于任何实现IntoFuture的东西。 (类似于使用for循环,您可以遍历实现IntoIterator的任何内容。) 这允许类型提供更简单的异步接口: std::future::{ready,IntoFuture,Ready};structEimplIntoFutureforExample{typeOutput1。32;typeIntoFutureReadyi32;fnintofuture(self)Readyi32{ready(123)}}asyncfnexample(){prtntln!(Hello,{}!,Example。await);} 2、今天的Rust版本还附带了另外两个与异步相关的工具。 std::future::pollfn函数允许你轻松地从一个闭包中创建一个future(就像iter::fromfn用于迭代器)。 std::task::ready!()宏会提取Poll::Ready中值,或者提前返回Pending。letffuture::pollfn(cx{。。。letvalueready!(anotherfuture。poll(ex));Poll::Ready(value1)}); 3、Rust的NonZero类型获得了用于(无符号)加法、乘法、求幂、绝对数和二次幂计算的新方法,它们都保持非零性:它们返回NonZero类型,因为我们知道结果永远不会为零。fncalc(x:NonZeroI32)NonZeroll32{Cantresultinzero,becausexisneverzero。x。unsignedabs()。saturatingadd(123)} 有关Rust1。64中更完整的更改列表,点击标题。 Rust1。64。0发布:异步是亮点