自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

自從嘗了 Rust,Java 突然不香了

新聞 前端
相對而言,Rust 是軟件行業(yè)中比較新的一門編程語言,如果從語法上來比較,該語言與 C++ 其實非常類似,但從另一方面而言,Rust 能更高效地提供許多功能來保證性能和安全。

 [[332236]]

相對而言,Rust 是軟件行業(yè)中比較新的一門編程語言,如果從語法上來比較,該語言與 C++ 其實非常類似,但從另一方面而言,Rust 能更高效地提供許多功能來保證性能和安全。而且,Rust 還能在無需使用傳統(tǒng)的垃圾收集系統(tǒng)的情況下保證內(nèi)存的安全性。

Rust 語言原本是 Mozilla 員工 Graydon Hoare 的私人項目,Graydon Hoare 當時是 Mozilla 研究部門的一位經(jīng)驗豐富的 IT 科學家。2009 年,Mozilla 開始贊助這個計劃,并且在 2010 年首次揭露了它的存在。

隨著越來越多設(shè)計者的加入,他們?yōu)樵摼幊陶Z言打造了瀏覽器引擎,并設(shè)計了 Rust 編譯器。Rust 編譯器是一款免費和開源的編程軟件,受 MIT 許可證和 Apache 許可證保護。自 2016 年起,由于許多開發(fā)人員開始選擇 Rust 而不是 Java 來進行棧溢出(Stack overflow)開發(fā),Rust 語言開始成為人們關(guān)注的焦點。

Rust 官網(wǎng)鏈接:https://www.rust-lang.org/

1. 為什么 Rust 受到許多開發(fā)者的青睞?

Rust 具有更強大的高并發(fā)性和高安全性,堪稱棧溢出開發(fā)的完美選擇。對函數(shù)的優(yōu)秀控制能力和對內(nèi)存布局的完美運用,這讓Rust 成為一種面向性能的編程語言。使用 Rust,你可以事半功倍地維護系統(tǒng)的完整性和安全性,此外,在語法、內(nèi)存安全性以及內(nèi)存管理上 Rust 也有著不俗表現(xiàn)。

語法易學

由于 Rust 與軟件行業(yè)中最流行的 C++ 語言的相似性以及其簡單的語法,讓學習和理解這門語言變得非常容易,甚至對于初學者而言也簡單易懂。Rust 的語法與 C 和 C++ 編程有很多相似之處,比如 if-else、while、for、return 等關(guān)鍵字的用法,而 Rust 中一些關(guān)鍵字還使用了模式匹配技術(shù),這使得這門語言更容易上手。

盡管語法非常相似,就函數(shù)和功能方面而言,Rust 語言做得更廣更深。該編程語言的“廣”在于,你可以發(fā)現(xiàn)每個函數(shù)體中所包含的幾乎所有部分,包括控制流操作符,本身都是以表達式來呈現(xiàn)的。簡而言之,如果你已經(jīng)掌握了 C 或 C++,在對這些編程語言的一般理解標準下,Rust 能幫助你完成更多工作。

內(nèi)存安全

說到 Rust 的安全特性,它被專門設(shè)計為保護內(nèi)存安全,它在安全代碼中不允許使用空指針、懸垂指針和數(shù)據(jù)競爭。如果你需要對一個數(shù)據(jù)值進行初始化,那么只能通過一系列固定的形式來完成初始化,它要求在函數(shù)開始前初始化所有的輸入。幾乎所有其他語言都允許指針以有效形式或 Null 形式存在,但 Rust 提供了一組額外的特性集來測試指針是否有值。

非傳統(tǒng)的特性

Rust 還引入了一些額外添加的語法和功能來管理函數(shù)本身的生命周期,另一個方面,如果需要編寫一些不安全的代碼,可以使用 Unsafe Rust 功能來對其進行限制,而所有權(quán)功能作用于所有的值,讓每個值只可以有一個唯一的所有權(quán)屬主,值的有效范圍和該唯一所有權(quán)屬主的有效范圍保持一致。值可以通過不可變引用關(guān)鍵字 &T 進行傳遞,也可以通過可變引用關(guān)鍵字 &mut T 來完成傳遞。Rust 編譯器在編譯時執(zhí)行這些規(guī)則,并同時追蹤所有引用的有效性。

內(nèi)存管理

Rust 不像 Java 或.Net 等編程語言那樣使用傳統(tǒng)的自動垃圾回收系統(tǒng),Rust 也不像 Swift 或 C 等編程語言那樣使用自動引用系統(tǒng)。Rust 是通過其獨有的 RAII(資源獲取即初始化)規(guī)范方法來管理內(nèi)存和其他資源的。此外,Rust 還使用最優(yōu)引用計數(shù)方法來對內(nèi)存分配進行優(yōu)化,它還支持值的堆棧分配方法而非隱式裝箱轉(zhuǎn)換。

基于特征(Traits)和結(jié)構(gòu)化類型來實現(xiàn)

Rust 的系統(tǒng)是基于特征(Traits)和結(jié)構(gòu)化類型來實現(xiàn)的。在 Rust 中,類是用關(guān)鍵字 impl 來定義的。繼承和多態(tài)是由特征提供的,并允許開發(fā)人員使用方法和混合實現(xiàn)。此外,結(jié)構(gòu)化類型還用于定義不同類型的字段。實現(xiàn)和特征不能進行自我定義,它們只能提供繼承數(shù)據(jù)。Rust 還支持接口繼承,但是只允許使用復(fù)合集成來替代實現(xiàn)繼承。

2. Rust 代碼示例

Hello World 函數(shù)

  1. fn main() { 
  2.  
  3. println!("Hello World!"); 
  4.  

遞歸函數(shù)

  1. fn factorial(i: u64) -> u64 { 
  2.  
  3. match i { 
  4.  
  5. 0 => 1
  6.  
  7. n => n * factorial(n-1
  8.  
  9. }} 

迭代函數(shù)

  1. fn factorial(i: u64) -> u64 { 
  2.  
  3. let mut acc = 1
  4.  
  5. for num in 2..=i { 
  6.  
  7. acc *= num; 
  8.  
  9.  
  10. acc 
  11.  

3. 當下使用 Rust 的主流項目

如果你知道現(xiàn)在有哪些軟件和應(yīng)用程序是用 Rust 語言開發(fā)的,那么你可能會比以前更加信賴這種編程語言。Rust 已經(jīng)被用于開發(fā)很多赫赫有名的主流應(yīng)用程序,有如下:

  1. Mozilla Firefox 瀏覽器;
  2. Discord(一款游戲聊天應(yīng)用);
  3. Gecko 瀏覽器;
  4. Tor 瀏覽器;
  5. GNOME Fractal(一款即時消息客戶端);
  6. 谷歌 Fuchsia 操作系統(tǒng);
  7. Redox OS;
  8. Rocket Web Framework;
  9. Servo(一款由 Mozilla 開發(fā)的網(wǎng)頁瀏覽器排版引擎);
  10. Terminus DB(一款數(shù)據(jù)庫軟件);
  11. Libra(數(shù)字貨幣);
  12. OpenDNS;

4. Rust 的獨有特性

  • 十分接近基本的 C 和 C++ 編程語言和語法;
  • 做代碼分析時,即使對于第三方代碼閱讀器而言,也能輕松解析其中引用的語義;
  • 所有權(quán)系統(tǒng)設(shè)計非常合理,這也讓 Rust 變得特點鮮明;
  • 由于有邏輯內(nèi)存分配、引用處理和內(nèi)存管理等特性,Rust 內(nèi)置的包管理器 Cargo 功能非常強大;
  • Rust 的編譯器自身功能令人驚嘆。

5. Rust 比 Java 好在哪?

即使對于一個中等水平的程序員而言,從 Java 切換到 Rust 也是一件很容易的事情。從一開始學習,你就會覺得概念和語法似曾相識,這能讓學習和編程都變得十分容易。因此,盡管 Rust 的確在技術(shù)上朝前邁出了一大步,但程序員在編程習慣上并不需要做出很大的調(diào)整。

使用 Rust 語言,你可以放心大膽地去探索各式類型新穎的復(fù)雜項目,而之前由于 Java 語言的復(fù)雜性,你不敢輕易嘗試這些項目。對于獨立開發(fā)者來說,完美的資源分配和良好的內(nèi)存管理是必備之選,這的確是 Rust 一個較大的優(yōu)點。

另一方面,如今所有行業(yè)都建設(shè)在 IT 基礎(chǔ)之上,無論你是否是一名專業(yè)編程人員,在任何需要挖掘創(chuàng)造力的技術(shù)領(lǐng)域,都需要借助軟件編程。因此,復(fù)雜的編碼語言讓非專業(yè)程序員很難輕松地編寫出所需代碼,而 Rust 正好可以為這類人提供解決方案。即使是業(yè)余程序員和初學者,也可以輕松地學習并在邏輯上理解這門編程語言,從而磨礪自己的技能并在各行各業(yè)中去盡力發(fā)揮他們的創(chuàng)造力。

6. 結(jié)束語

從 Java 切換到 Rust 很簡單,而且順理成章,只需要在編程語言上做出一些調(diào)整就能完成切換。而且這種切換并不會讓你忘記所有已經(jīng)掌握的 Java 技能,因此,如果需要,你還可以隨時切換回 Java。但是,如果你堅持使用 Rust 的話,你的生產(chǎn)效率將會變得更高,資源使用率將得到優(yōu)化,代碼安全性會變得更好,而且最重要的一點是,你能享受Rust 提供的諸多額外特性和功能。

 

 

責任編輯:張燕妮 來源: 架構(gòu)頭條
相關(guān)推薦

2024-06-21 09:51:17

2020-01-21 21:15:16

WiFi網(wǎng)絡(luò)WiFi6

2021-12-02 06:34:34

GraylogELK日志

2021-12-03 10:46:49

ELKGraylog運維

2022-03-11 10:29:22

監(jiān)控系統(tǒng)數(shù)據(jù)

2021-12-05 23:17:18

iOS蘋果系統(tǒng)

2021-01-11 08:03:30

阿里中臺項目

2019-08-28 10:41:35

RustC語言編程

2022-03-22 09:20:57

應(yīng)用線程池技術(shù)

2020-05-25 10:37:58

自學編程技巧

2021-08-03 05:22:49

微信借條騰訊

2020-10-12 09:48:55

SSR JSPPHP

2020-09-25 15:50:41

鴻蒙小米國產(chǎn)

2024-02-01 08:21:40

2020-07-21 11:15:20

編程Rust開發(fā)

2020-10-31 16:40:13

5G運營商通信

2020-05-09 10:18:31

Java開源工具

2020-02-18 07:22:48

微軟WindowsWindows 10

2022-05-26 10:28:59

Ubuntu桌面

2020-10-21 09:19:27

Flutter開源項目
點贊
收藏

51CTO技術(shù)棧公眾號