偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

 [[332236]]

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

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

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

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

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

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

語法易學(xué)

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

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

內(nèi)存安全

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

非傳統(tǒng)的特性

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

內(nèi)存管理

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

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

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

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

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

4. Rust 的獨(dú)有特性

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

5. Rust 比 Java 好在哪?

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

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

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

6. 結(jié)束語

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

 

 

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

2024-06-21 09:51:17

2021-12-03 10:46:49

ELKGraylog運(yùn)維

2020-01-21 21:15:16

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

2021-12-02 06:34:34

GraylogELK日志

2025-06-25 09:31:41

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

阿里中臺(tái)項(xiàng)目

2019-08-28 10:41:35

RustC語言編程

2022-03-22 09:20:57

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

2020-05-25 10:37:58

自學(xué)編程技巧

2021-08-03 05:22:49

微信借條騰訊

2024-02-01 08:21:40

2020-07-21 11:15:20

編程Rust開發(fā)

2020-09-25 15:50:41

鴻蒙小米國(guó)產(chǎn)

2020-10-12 09:48:55

SSR JSPPHP

2020-10-31 16:40:13

5G運(yùn)營(yíng)商通信

2020-05-09 10:18:31

Java開源工具

2020-02-18 07:22:48

微軟WindowsWindows 10

2022-05-26 10:28:59

Ubuntu桌面
點(diǎn)贊
收藏

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