亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

? 為什么選擇Rust

發布時間:2021-10-19 17:09:36 來源:億速云 閱讀:142 作者:iii 欄目:編程語言

本篇內容主要講解“  為什么選擇Rust”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“  為什么選擇Rust”吧!

為什么選擇Rust

這個世界上的編程語言不計其數,僅在 TIOBE(開發語言排行榜)上被納入統計范圍的就有273種之多,下圖是當下最流行的前20種編程語言。 ?  為什么選擇Rust

這些優秀的編程語言往往都有自己的絕活,例如C性能非常高,Java便于抽象擅長組織大型程序,Python適合小巧的腳本,等等。但同樣,它們也并非完美,性能高的C容易產生段錯誤(segfault,由訪問不屬于本程序擁有的內存所造成的崩潰,例如空指針解引用等),擅長抽象的Java需要垃圾回收(GC),上手快的Python解釋執行速度較慢。所以,編程語言的設計和發展仍有進步的空間,而Rust就是近年來涌現的新一代的綜合各大編程語言優點的集大成者。

Rust的設計者是這樣定位這門語言的:

Rust is a system's programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.

Rust的突出優勢可以總結為以下三點(無須看懂,知道Rust很厲害就完事了):

  • 內存安全:Rust最重要的特點就是可以提供內存安全保證,而且沒有額外的性能損失。保證內存安全即不會出現內存訪問錯誤,為此,Rust建立了嚴格的內存安全管理模型:

    • 所有權系統:每個被分配的內存都有一個獨占其所有權的指針,只有當該指針被銷毀時,其對應的內存才能隨之被釋放。所有權系統借鑒了C++的RAII機制,這是Rust無GC但是可以安全管理內存的基石。

    • 借用和生命周期:每個變量都有其生命周期,一旦超出生命周期,變量就會被自動釋放。如果是借用,則可以通過標記生命周期參數供編譯器檢查的方式,防止出現懸垂指針,也就是釋放后使用的情況。

  • 零成本抽象:抽象表達能力是使用編程語言高效開發的必要條件,有些語言的抽象表達能力是靠犧牲性能換來的,而Rust的抽象表達能力不會存在運行時性能開銷。Rust零成本抽象的基石是泛型和trait。

  • 并發:內存安全的bug和并發安全的bug產生都是由內存的不正當訪問造成的,所以,利用裝載了所有權的強大類型系統,Rust能夠在編譯期檢查出多線程并發代碼中的數據競爭問題。

Rust以其獨特的魅力已經連續多年榮膺StackOverflow網站罪受程序員歡迎的編程語言,雖然目前其在TIOBE榜單上還未入前列,但未來互聯網必定更加注重安全和高性能,所以應運而生的Rust必將大有可為。

在學習Rust的語法之前,我們先一起來了解一下Rust的周邊知識。

Rust常用網站

  • 官方網站:點擊這里。在這里你可以找到官方教材TRPL等許多重要內容,所以探索一下此網站大有裨益。

  • 編譯器是開源的:點擊這里。對Rust語言來說,開源社區也是語言的一部分,這是和其他商用語言的區別所在。

  • 語言設計和相關討論:點擊這里。Rust每增加一個重要語言特性,都會經過標準的RFC流程,RFC文檔是涵蓋了語言特性的設計意圖、詳細設計、優缺點的完整技術方案。這對于我們學習者來說,可以通過閱讀RFC來深入了解某個語言特性的來龍去脈,這將是一個極其寶貴的學習資源,有助于了解某個特性背后的原理。

  • 官方開源倉庫:點擊這里。該網站儲存了Rust社區熱門的開源庫。

版本和發布策略

Rust編譯器的版本號采用了“語義化版本號”(Semantic Versioning)的方案,版本格式為:主版本號.次版本號.修訂號,其遞增規則如下:

  • 主版本號:當做了不兼容的API修改

  • 次版本號:當做了向下兼容的功能性新增

  • 修訂號:當做了向下兼容的問題修正

Rust團隊維護三個發行分支:

  • 開發版(nightly):最新的功能將首先發布在此分支,供用戶試用。

  • 測試版(beta):將nightly版本中驗證過的功能開放給用戶使用,可以看作是stable版本的預發布版本。

  • 穩定版(stable):每隔6個星期發布的穩定可靠的版本。

Rust語言每個相對復雜一點的新功能,都要經歷如下步驟才算真正穩定可用:

RFC -> Nightly -> Beta -> Stable

有時一些新功能確實需要一定程度上破壞兼容性,為了最大程度上減少這些變動給用戶帶來的影響,Rust設計組又提出一個所謂的edition方案,目前有 2015 和 2018兩種edition,我們可以設置"edition=2018"來告訴編譯器我們使用的版本。

安裝開發環境

根據官網的推薦,可以使用一個叫rustup的工具安裝Rust相關的一整套工具鏈。命令如下:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

我們可以使用rustup工具管理工具鏈:

// 更新rustup本身
rustup self update
// 更新工具鏈
rustup update

也可以用它在stable/beta/nightly三種版本中輕松切換:

// 安裝nightly版本的工具鏈
rustup install nightly
// 設置默認工具鏈是nightly版本
rustup default nightly

若執行下列命令能夠正確輸出版本號則說明Rust安裝成功:

rustc --version

若安裝不成功,請嘗試將~/.cargo/bin加入PATH環境變量中去。

~/.cargo/bin目錄下可以找到Rust的一些常用工具,如下圖所示:

?  為什么選擇Rust

  • cargo:Rust的包管理器,類似于Python的pip、Node.js的npm。但cargo不僅局限于包管理,它還為Rust生態系統提供了標準的工作流,能夠管理整個工作流程,從創建項目、運行單元測試和基準測試,到構建發布鏈接庫,再到運行可執行文件,等等。

  • rustc:Rust的編譯器,負責將Rust源代碼編譯為可執行文件或其他庫文件。rustc是Rust開發的,其輸出的錯誤信息非常友好和詳盡,遠超你見過的任何一款編譯器。

  • rustdoc:文檔生成器。

  • rls和racer:為編輯器準備的代碼提示工具。

  • cargo-fmt和rustfmt:源代碼格式化工具,有了這個,再也不用爭論大括號是寫在行尾還是另起一行了。

  • rust-gdb和rust-lldb:調試器。

對于IDE,Rust尚沒有專屬的IDE,我推薦Clion+Rust插件,已經非常好用了。

Hello World

配置好了開發環境,如何能不寫一個充滿儀式感的Hello World程序呢?來,新建一個文件,命名為hello_world.rs,內容如下:

// hello_world.rs
fn main() {
	let s = "hello world!";
	println!("{}", s);
}

然后使用rustc編譯它,可看到當前文件夾下生成了一個名為hello_world的可執行程序:

?  為什么選擇Rust

到此,相信大家對“  為什么選擇Rust”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西峡县| 彭水| 托克托县| 金塔县| 永修县| 诸暨市| 太康县| 霍城县| 临漳县| 涡阳县| 新蔡县| 昌都县| 梁河县| 五原县| 安阳市| 荔浦县| SHOW| 天长市| 田东县| 黄龙县| 龙游县| 九龙坡区| 肥乡县| 平阳县| 淄博市| 蓬安县| 灵台县| 玛曲县| 应用必备| 宁蒗| 古丈县| 福州市| 德州市| 漳浦县| 旬邑县| 东兰县| 淮北市| 桃园县| 东莞市| 锡林浩特市| 芦溪县|