Rust 1.64.0釋出:非同步是亮點
每六週釋出一次新版本,在每個新版本中,這裡都有一個包含一些亮點:
1、Rust 現在有一個與非同步相關的新特性:IntoFuture。
.await 語法可用於任何實現 IntoFuture 的東西。
(類似於使用 for 迴圈,您可以遍歷實現 IntoIterator 的任何內容。)
這允許型別提供更簡單的非同步介面:
std::future::{ready, IntoFuture, Ready}; struct Example; impl IntoFuture for Example { type Output = 1.32; type IntoFuture = Ready<i32>; fn into_future(self) -> Ready<i32> { ready(123) } } async fn example( ) { prtntln!("Hello, {}!", Example.await); } |
2、今天的Rust版本還附帶了另外兩個與非同步相關的工具。
std::future::poll_fn函式允許你輕鬆地從一個閉包中建立一個future(就像iter::from_fn用於迭代器)。
std::task::ready! () 宏會提取Poll::Ready中值,或者提前返回Pending。
let f = future::poll_fn(|cx| { ... let value = ready!(another_future.poll(ex)); Poll::Ready(value + 1) }); |
3、Rust 的 NonZero 型別獲得了用於(無符號)加法、乘法、求冪、絕對數和二次冪計算的新方法,它們都保持“非零性”:它們返回 NonZero 型別,因為我們知道結果永遠不會為零。
fn calc(x: NonZeroI32) -> NonZeroll32 { // Can't result in zero, because x is never zero. x.unsigned_abs().saturating_add(123) } |
有關 Rust 1.64 中更完整的更改列表,點選標題。
相關文章
- Rust 1.60.0釋出Rust
- Rust 1.59.0釋出Rust
- Rust 0.4釋出Rust
- Rust 1.79.0釋出Rust
- Rust非同步Asyn的特點Rust非同步
- Lucene 4.0 正式版釋出,亮點特性中文解讀
- Rust 1.0 正式釋出Rust
- 如何給女朋友解釋什麼是IO中的阻塞、非阻塞、同步、非同步?非同步
- Android 13 Beta 版釋出,諸多亮點不容錯過Android
- 全球最快SUV 特斯拉Model X在京釋出:鷹翼門成亮點
- 大白話搞懂什麼是同步/非同步/阻塞/非阻塞非同步
- Rust 1.82.0版本釋出Rust
- 2023 Bonree ONE 秋季產品釋出會:亮點搶先看!
- 魅族E釋出會什麼時候召開 魅族新品釋出會有什麼亮點
- 點亮
- 小就是大|2022 OceanBase 年度釋出會亮點搶先看!
- Android API級別、代號、釋出時間及平臺亮點整理AndroidAPI
- 對於同步、非同步、阻塞、非阻塞的幾點淺薄理解非同步
- 騰訊雲釋出全新金融業務支撐平臺,TDSQL分散式資料庫是最大亮點之一SQL分散式資料庫
- 阿里雲ARMS應用監控基礎版重磅釋出都有哪些亮點?阿里
- 36氪釋出二季度財報 透露出四個潛在亮點
- 同步非同步,阻塞非阻塞非同步
- 非同步、同步、阻塞、非阻塞非同步
- 同步、非同步、阻塞、非阻塞非同步
- 三星Galaxy Note9旗艦機今晚釋出 S pen成亮點
- 2022年4399遊戲盒遊戲釋出會,多款遊戲亮點回顧遊戲
- 原生IP是什麼意思?有什麼亮點?
- 同步非同步 與 阻塞非阻塞非同步
- 理解阻塞、非阻塞、同步、非同步非同步
- 同步、非同步,阻塞、非阻塞理解非同步
- 同步、非同步、阻塞與非阻塞非同步
- 同步、非同步、阻塞和非阻塞非同步
- CipherTrust釋出即時資訊保安方案(轉)Rust
- 貓玩互娛品牌戰略升級釋出會搶先看!三大亮點值得期待!
- Rust非同步之FutureRust非同步
- Rsync 3.1.0 釋出,檔案同步工具
- [轉]阻塞/非阻塞與同步/非同步非同步
- 同步與非同步 阻塞與非阻塞非同步