深入RUST標準庫內(nèi)核(序言)

本書github鏈接:inside-rust-std-library

對RUST的興趣來自于一則新聞報道——Linus認真考慮將RUST作為Linux內(nèi)核開發(fā)語言。因此開始了對RUST探索,不久后基本上就從心底里認同了這門語言,RUST不僅是高性能及安全的語言,它的語法設計也會帶來更合理的代碼架構,即使是對于初學者。而后一點實際上是以類為基礎的編程語言想解決但效果不彰的。相比于它帶來的好處,所有權,借用,生命周期等帶來的復雜性僅僅是一個訓練和習慣的過程而已。 但這個訓練和習慣的過程僅僅靠學習各種書籍,指南,文檔顯然是無法達成的,代碼的訓練和研究必不可少。在做了一些表層語法的訓練之后,就需要做一些復雜模塊的代碼研究了。

RUST標準庫顯然是一個合適的研究對象。(標準庫代碼就在rust安裝目錄下),vscode+rust插件是一個合適的閱讀代碼的IDE。?

資深C程序員都理解,C語言核心的關鍵就是徹底的了解內(nèi)存和指針,作為和C地位等同的系統(tǒng)級變成語言,RUST的核心關鍵實際上也類似。但RUST各種書籍和學習資料中,對指針的解釋基本沒有觸及根本。標準庫代碼則揭示了指針的所有秘密:原生指針的結構體類型?內(nèi)存的申請與釋放?不同類型的原生指針如何相互轉(zhuǎn)換?... 。實際上,了解了RUST的內(nèi)存和原生指針,那就解決了RUST大部分的理解難點,剩下的只是概念理解和工作量。 RUST的運算符重載是RUST的另一個核心點。數(shù)學運算/位運算/關系運算/邏輯運算的重載易于理解。但下標運算符[],范圍(Range)運算符`../start..end/start..=end/start../..end/..=end`,問號運算符?,解引用運算符(*)就要深入代碼才能掌握。 迭代器Iterator可視作語言循環(huán)結構的一部分,RUST的基礎類型數(shù)組,切片,字符串對Iterator的實現(xiàn)是學習RUST的代碼技巧不可放過的。 Option/Result是RUST的一大創(chuàng)舉,這兩個類型使得程序員的疏忽大意和思慮不周再沒有用武之地。Option/Result結構體的行為也是RUST的函數(shù)式編程的基礎設施。 在RUST智能指針系列結構中,Box是內(nèi)存申請的基礎,Box的代碼是理解RUST的堆內(nèi)存操作的關鍵。 還有Vec,String,Rc,Cell,Cow,RefCell,Arc等等,這里不再一一例舉,本書會逐一分析其源碼,揭示其秘密。 對RUST標準庫的代碼進行研究是一件很辛苦,很有樂趣的工作。最有趣和最辛苦的就是碰到一個新的類型,新的Trait的時候。往往在“為什么有這個結構類型和Trait”的思考和探索中,一兩個小時就過去了。而后豁然開朗,擊節(jié)贊嘆。RUST也隨著這些研究和探索,由仙界墮入凡塵。?

本書將把這段研究RUST標準庫的過程和結果進行揭示。 RUST現(xiàn)在雖然還泯然眾人,但估計不久之后將脫穎而出,而能否熟練的用RUST編寫程序很可能成為評判優(yōu)秀程序員的一個標準。希望這本書能夠幫助大家更好的掌握這門語言。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容