回覆列表
  • 1 # 任成珺

    自推薦,github超250星專案

    inside-rust-std-library,

    [連結](https://github.com/Warrenren/inside-rust-std-library)

    本書主要對RUST的標準庫程式碼進行分析。本書儘可能給讀者找出一條標準庫程式碼的閱讀脈絡。同時,分析不僅僅針對程式碼的功能,也針對程式碼背後的需求及若干程式碼設計的思路。

    C語言精通的標誌是對指標的精通。RUST的裸指標也是RUST的最基礎及最核心的難點之一。 所以,將裸指標及相關的記憶體模組作為程式碼分析的起始點,熟悉了裸指標及記憶體,自然也就對所有權,借用,生命週期的本質有了深刻的理解,RUST語言的最難關便過了。

    泛型是RUST不可分割的語法之一,而對於其他語言,沒有泛型不影響語言的使用。泛型及基於trait的泛型約束是RUST的另一個程式碼基礎。

    針對基本型別的分析,可以看到RUST利用trait語法使之具備了無限的擴充套件性,這是RUST更有表現力的語法能力的展現。

    Option/Result<T,E>等型別實際完全是由標準庫定義的,並不是RUST語言最底層的基本內容,可以從程式碼分析中發現這一點。

    所有的運算子都可以過載,且可以跨越型別過載,RUST的運算子過載揭示了RUST很多的編碼奧秘及技巧。

    Iterator加閉包是函數語言程式設計的基礎構架,Iterator的介面卡構成了函數語言程式設計的基礎設施,RUST完整的實現了這些內容,並且幾乎為每個型別都實現了迭代器,並儘可能的為函數語言程式設計做好了準備。

    Cell/RefCell/Pin/Lazy程式碼證明了在RUST的基礎語法下,如何創造性的解決問題。

    Box/RawVec是兩個堆記憶體申請的基本結構,善用這兩個結構,除非寫記憶體管理,基本上就不必再接觸底層的堆記憶體申請及釋放。

    每一個智慧指標實際上也是RUST對經典的資料結構實現的精妙例程。

    RUST對不同作業系統的適配讓程式設計師不必象C那樣再重複的耗費精力並且還沾沾自喜於此份工作。

    僅支援非同步程式設計的async/await,Future也體現了RUST的作最基礎的工作的態度。

    ...

    ...

  • 中秋節和大豐收的關聯?
  • 潘長江被傳移民美國,真相到底什麼?