Rust 學習之路─第十五章:智慧型指標 2018 年 6 月 25 日 Magic Len Rust、研究分享 相對於傳統直接使用記憶體位址來對應記憶體資料的指標,智慧型指標為一種資料結構,除了擁有基本的指標能對應記憶體資料的功能外,還可以提供其它不同的資訊以及額外的功能。例如我們先前使用過的Vec結構體和String結構體,就是智慧型指標。 繼續閱讀 Rust、Rust 學習之路、Smart Pointer、智慧型指標
Rust 學習之路─第十四章:Cargo和Crates.io 2018 年 6 月 24 日 Magic Len Rust、研究分享 Cargo除了可以編譯、執行、測試程式專案之外,還可以針對程式專案進行程式建構(build)時的細節調整、將不同程式專案組合成相同的工作空間(Workspace),還能搭配Crates.io來使用,利用程式專案的相依關係快速取得Crates.io上的套件,或是反過來將我們開發完成的函式庫發佈到Crates.io上。 繼續閱讀 Cargo、crates.io、Rust、Rust 多行註解、Rust 學習之路、Rust 文件註解、Rust 註解
Rust 學習之路─第十三章:閉包和迭代器 2018 年 6 月 23 日 Magic Len Rust、研究分享 Rust程式語言融合了多種程式設計法(programming paradigm),以指令式程式設計(imperative programming)為主,支援函數式程式設計(functional programming),不必明確定義出函數名稱的「閉包」和for迴圈所使用的「迭代器」和即是衍生自函數式程式設計的特性。 繼續閱讀 Closure、function pointer、functional programming、Iterator、Rust、Rust 學習之路、函數式程式設計、函數指標、迭代器、閉包
Rust 學習之路─第十二章:製作grep命令列程式 2018 年 6 月 22 日 Magic Len Rust、研究分享 我們要運用目前為止學到的Rust程式語言知識來製作出屬於我們的「grep」(globally search a regular expression and print)程式。簡單來說,grep程式可以用來尋找特定檔案中的特定字串。grep程式可以透過命令列參數來傳入檔案路徑和要尋找的字串,執行的時候就可以讀取這個檔案中所有包含要尋找的字串的該行資料,並將其印出。 繼續閱讀 globally search a regular expression and print、grep、Rust、Rust 學習之路
Rust 學習之路─第十一章:測試 2018 年 6 月 21 日 Magic Len Rust、研究分享 Rust是被設計成用來開發高正確性程式的程式語言,運用了靜態型別來增加程式的可靠性,也用了擁有權、生命周期等等的概念來保證程式的安全性。雖然Rust強大的編譯器會替我們做很多程式碼方面的檢查,但是程式邏輯上的正確性,就無法依靠它來驗證了。 繼續閱讀 Rust、Rust 學習之路
Rust 學習之路─第十章:泛型、特性和生命周期 2018 年 6 月 20 日 Magic Len Rust、研究分享 每個程式語言都有用一些有效的方式來處理重複的抽象概念,好比先前介紹過的集合,我們可以使用同一種集合結構體來產生出不同的實體,儲存不同型別的資料。舉例來說,String和i32這兩個不同型別的資料都可以被存到Vec結構體所建立的實體中,我們不需要特地針對不同資料的型別來分別實作出如「Vec<String>」或是「Vec<i32>」這樣的結構體。這是就因為Vec結構體使用了「泛型」(generic)。 繼續閱讀 dangling reference、Rust、Rust 學習之路、懸置參考
Rust 學習之路─第九章:錯誤處理 2018 年 6 月 19 日 Magic Len Rust、研究分享 Rust程式語言將錯誤分為「不可恢復的錯誤」(unrecoverable error)和「可恢復的錯誤」(recoverable error),程式開發人員必須依照程式邏輯來自行決定應該要讓程式使用哪種類型的錯誤。 繼續閱讀 match guard、Rust、Rust 學習之路、匹配守衛
Rust 學習之路─第八章:常用的集合 2018 年 6 月 18 日 Magic Len Rust、研究分享 Rust程式語言的標準函式庫中已有內建了數個好用的集合資料結構。不同於基本資料型別只能夠儲存一個值,也不同於元組、陣列、結構體只能儲存固定大小的資料量,集合的資料結構將資料儲存在堆積中,也就是說不需要在編譯階段就知道要存入的資料的數量和大小。 繼續閱讀 Rust、Rust 學習之路
Rust 學習之路─第七章:模組 2018 年 6 月 17 日 Magic Len Rust、研究分享 我們先前所練習的Rust程式幾乎都只是把程式敘述寫在「main.rs」檔案中,雖然我們已經會使用函數和方法來分割不同功能的程式,但當程式愈寫愈多的時候,這樣的作法還是會讓程式變得難以維護。這時就需要用到Rust提供的「模組」系統了。 繼續閱讀 Rust、Rust 學習之路
Rust 學習之路─第六章:列舉和型樣匹配 2018 年 6 月 16 日 Magic Len Rust、研究分享 在先前的章節中我們已經稍微用過「Result」列舉了,在這個章節中,我們將會學著定義自己的列舉型別,以及使用另一個同樣是由Rust內建,也很常用的「Option」列舉。列舉和同樣我們先前已經用過的「match」關鍵字經常互相搭配著使用,在這個章節中,我們也會更深入地學習「match」關鍵字和「if let」、「while let」語法的用法。 繼續閱讀 Pattern Matching、Rust、Rust 學習之路、型樣匹配