Rust 1.31正式发布,首次引入Rust 2018新功能
Rust 1.31是第一個(gè)實(shí)現(xiàn)了Rust 2018獨(dú)有新功能并且不保證與現(xiàn)有代碼庫兼容的版本。Rust 2018相關(guān)工作正在進(jìn)行中,而Rust 1.31只是整個(gè)三年開發(fā)周期的開始,這個(gè)開發(fā)周期將對(duì)這門語言進(jìn)行重要的擴(kuò)展。
InfoQ之前已有報(bào)道,Rust 2018的目標(biāo)是打包自上一個(gè)主要版本(Rust 2015)以來的所有已經(jīng)出現(xiàn)的語言變更。此外,Rust 2018將包含一些可能會(huì)破壞現(xiàn)有源代碼的變更。比如引入了新的關(guān)鍵字,例如try、async、await等,它們可能與變量或函數(shù)名稱產(chǎn)生沖突。因此,能夠選擇要使用的語言版本對(duì)于編譯現(xiàn)有代碼庫來說非常關(guān)鍵。為了實(shí)現(xiàn)這種方法,Rust團(tuán)隊(duì)已經(jīng)在Rust 1.31中一次性地包含了所有重大變化,盡管有些尚未完全實(shí)現(xiàn)。例如,他們保留了新關(guān)鍵字,但還不起作用,因此試圖使用它們來命名變量或函數(shù)的開發(fā)人員會(huì)收到錯(cuò)誤。需要指出的是,Rust 2015和2018軟件包可以在同一個(gè)程序中共存,這意味著Rust 2018程序可以使用Rust 2015軟件包,反之亦然。
Rust 1.31引入了很多主要語言功能,包括:
- 非詞法生命周期,讓Rust可以借用檢查器查看變量的實(shí)際生命周期而不必將其綁定到詞法作用域。
- 模塊路徑清晰度,旨在簡(jiǎn)化使用Rust模塊系統(tǒng)的方式,包括extern crate用法的改變、簡(jiǎn)化模塊路徑,等等。
- const fn,可以被用于任意常量上下文中,并在編譯時(shí)進(jìn)行求值。常量函數(shù)可以包括算術(shù)或布爾運(yùn)算、調(diào)用其他常量函數(shù)等,但比正常函數(shù)具有更多的限制。Rust 2015中也提供了常量函數(shù)。
不過,Rust 2018的推出并不意味著Rust 2015已經(jīng)結(jié)束。事實(shí)上,Rust團(tuán)隊(duì)計(jì)劃將所有不會(huì)破壞兼容性的變更向后移植到Rust 2015,盡管這將在稍后的時(shí)間點(diǎn)發(fā)生。
你可以通過運(yùn)行rustup update stable來安裝Rust 1.31。要試用Rust 2018功能,你需要在Cargo.toml文件的[package]中指定edition = “2018”。如果沒有提供版本,Rust編譯器將默認(rèn)使用Rust 2015,以最大化源代碼兼容性。
在一份相關(guān)的說明中,Rust團(tuán)隊(duì)還發(fā)布了Rust 2018調(diào)查結(jié)果,旨在衡量用戶對(duì)Rust的滿意度,并說明了語言和工具的常見缺點(diǎn)。
查看英文原文:Rust 1.31 Brings the First Rust 2018 Features, Non-lexical Lifetimes and Module Improvements
總結(jié)
以上是生活随笔為你收集整理的Rust 1.31正式发布,首次引入Rust 2018新功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ElasticSearch6.5.0 【
- 下一篇: 【重温基础】2.流程控制和错误处理