每六周发布一次新版本,在每个新版本中,这里都有一个包含一些亮点:
1、Rust 现在有一个与异步相关的新特性:IntoFuture。
.await 语法可用于任何实现 IntoFuture 的东西。
(类似于使用 for 循环,您可以遍历实现 IntoIterator 的任何内容。)
这允许类型提供更简单的异步接口:
std::future::{ready, IntoFuture, Ready}; |
2、今天的Rust版本还附带了另外两个与异步相关的工具。
std::future::poll_fn函数允许你轻松地从一个闭包中创建一个future(就像iter::from_fn用于迭代器)。
std::task::ready! () 宏会提取Poll::Ready中值,或者提前返回Pending。
let f = future::poll_fn(|cx| { |
3、Rust 的 NonZero 类型获得了用于(无符号)加法、乘法、求幂、绝对数和二次幂计算的新方法,它们都保持“非零性”:它们返回 NonZero 类型,因为我们知道结果永远不会为零。
fn calc(x: NonZeroI32) -> NonZeroll32 { |
有关 Rust 1.64 中更完整的更改列表,点击标题。