內(nèi)容簡介
語言語法
Rust的具體語法和C,C++類似,都是由花括號(hào)限定代碼塊,還有一樣的控制流關(guān)鍵字,例如if,else,while,和for。然而也并非所有的C或者C++關(guān)鍵字被實(shí)現(xiàn)了。某些Rust函數(shù)(比如關(guān)鍵字match用于模式匹配)對(duì)于那些精通這些語言的人就沒那么熟悉了。盡管與C/C++極其相似,Rust在深層語法上跟元語言家族的語言像是Haskell更接近。基本上一個(gè)函數(shù)體的每個(gè)部分都是表達(dá)式,甚至是控制流操作符。例如,那個(gè)普通的if表達(dá)式也取代了C的三元表達(dá)式。一個(gè)函數(shù)不需要以return表達(dá)式結(jié)束,在這種情況下函數(shù)最后的表達(dá)式就是返回值。
內(nèi)存安全
Rust語言系統(tǒng)設(shè)計(jì)于保證內(nèi)存安全,它在安全代碼里不允許空指針,懸垂指針和數(shù)據(jù)競爭。數(shù)值只能用一系列固定形式來初始化,要求所有輸入已經(jīng)被初始化。在其它語言中復(fù)制函數(shù)指針或者有效或者為空,比如在鏈表和二叉樹等數(shù)據(jù)結(jié)構(gòu)中,Rust核心庫提供Option類型,用來測(cè)試指針是否有值。Rust同時(shí)引入添加語法來管理生命周期,而且編譯器通過租借檢查器來說明相關(guān)理由。
內(nèi)存管理
Rust不像Go,Java以及.NET Framework那樣使用自動(dòng)垃圾回收系統(tǒng)。不同的是Rust通過RAII來管理內(nèi)存和資源,還可選引用計(jì)數(shù)。Rust以低開銷提供資源確定性管理。Rust也支持值的棧分配并不表現(xiàn)暗箱。
Rust里也有引用概念(用&符號(hào)),不包含運(yùn)行時(shí)引用計(jì)數(shù)。使得此類指針的安全性已獲得租用檢查器的編譯時(shí)驗(yàn)證,阻止懸垂指針和其它形式的未定義行為。
作者簡介
Rust語言在2006年作為 Mozilla 員工 Graydon Hoare 的私人項(xiàng)目出現(xiàn),而 Mozilla 于 2009 年開始贊助這個(gè)項(xiàng)目。第一個(gè)有版本號(hào)的 Rust 編譯器于2012 年 1 月發(fā)布。Rust 1.0 是第一個(gè)穩(wěn)定版本,于 2015年5月15日發(fā)布。 [14] “Rust”最初是Mozilla公司的 Graydon Hoare的私人項(xiàng)目。2009年Mozilla開始贊助此項(xiàng)目,并有若干 Mozilla 員工參與 Rust 語言的設(shè)計(jì)和研發(fā)。2013年8月,Graydon Hoare卸任 Rust 技術(shù)負(fù)責(zé)人職位,由Brian Anderson接任。 [15]2015年5月15日,Rust 1.0版本正式發(fā)布。2017年9月,Brian Anderson離開Mozilla,項(xiàng)目核心團(tuán)隊(duì)由 Aaron Turon和 Niko Matsakis接管共同領(lǐng)導(dǎo),另外,Aaron Turon是 Mozilla的Rust團(tuán)隊(duì)的負(fù)責(zé)人。 [16] 創(chuàng)建這個(gè)新語言的目的是為了解決一個(gè)頑疾:軟件的演進(jìn)速度大大低于硬件的演進(jìn),軟件在語言級(jí)別上無法真正利用多核計(jì)算帶來的性能提升。Rust是針對(duì)多核體系提出的語言,并且吸收一些其他動(dòng)態(tài)語言的重要特性,比如不需要管理內(nèi)存,比如不會(huì)出現(xiàn)Null指針等等。
在線閱讀
文件大小: 4.21MB