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.79.0釋出Rust
- Rust 1.60.0釋出Rust
- Rust 1.59.0釋出Rust
- Rust非同步Asyn的特點Rust非同步
- 2023 Bonree ONE 秋季產品釋出會:亮點搶先看!
- Android 13 Beta 版釋出,諸多亮點不容錯過Android
- 小就是大|2022 OceanBase 年度釋出會亮點搶先看!
- 如何給女朋友解釋什麼是IO中的阻塞、非阻塞、同步、非同步?非同步
- Rust 1.83.0 版本釋出Rust
- 大白話搞懂什麼是同步/非同步/阻塞/非阻塞非同步
- Rust 1.82.0版本釋出Rust
- Android API級別、代號、釋出時間及平臺亮點整理AndroidAPI
- 對於同步、非同步、阻塞、非阻塞的幾點淺薄理解非同步
- 阿里雲ARMS應用監控基礎版重磅釋出都有哪些亮點?阿里
- 點亮
- 騰訊雲釋出全新金融業務支撐平臺,TDSQL分散式資料庫是最大亮點之一SQL分散式資料庫
- 同步非同步,阻塞非阻塞非同步
- 非同步、同步、阻塞、非阻塞非同步
- 2022年4399遊戲盒遊戲釋出會,多款遊戲亮點回顧遊戲
- IntelliJ IDEA 2020.2正式釋出,諸多亮點總有幾款能助你提效IntelliJIdea
- 三星Galaxy Note9旗艦機今晚釋出 S pen成亮點
- Rust 日報 20191016 Rustup 釋出 1.20.2 版本Rust
- 36氪釋出二季度財報 透露出四個潛在亮點
- 同步非同步 與 阻塞非阻塞非同步
- 理解阻塞、非阻塞、同步、非同步非同步
- 同步、非同步,阻塞、非阻塞理解非同步
- 同步、非同步、阻塞與非阻塞非同步
- 貓玩互娛品牌戰略升級釋出會搶先看!三大亮點值得期待!
- Rust非同步之FutureRust非同步
- 原生IP是什麼意思?有什麼亮點?
- java同步非阻塞IOJava
- 以太全光網“點亮”智慧園區 中建協釋出園區建網“說明書”
- 小米7釋出會或將推遲到6月份 配置和價格都是亮點!
- Google 亮劍:釋出 Deepfake 資料集,對抗 AI 造假GoAI
- 同步、非同步、阻塞、非阻塞的區別非同步
- 華為雲Stack8.3面向香港正式釋出,六大亮點激發雲上躍遷
- 華為Mate20八大亮點:首發麒麟980 iPhone還沒釋出就輸了?iPhone
- 下午的小米釋出會上,該有的亮點都有了:AI、FaceID、「露背裝」……還有Diss對手AI