Rust 學習之路─第二十四章:建立多執行緒的Web伺服器 2018 年 7 月 4 日 Magic Len Rust、研究分享 在這個章節中,我們要用最基礎的方式透過TCP的監聽與連接,解析與傳送符合HTTP格式的訊息,來完成我們的Web伺服器。至於會選擇用這樣的方式來製作Web伺服器的原因是,要練習把我們在先前的章節中學到的東西加以應用。畢竟現在crates.io上已經有很多現成的Web框架(Web Framework)可以使用,正常來講我們是不需要從底層刻出Web伺服器的。 繼續閱讀 Rust、Rust 學習之路
Rust 學習之路─第二十三章:進階的型別用法 2018 年 7 月 3 日 Magic Len Rust、研究分享 在上一章節的最後我們介紹到利用元組結構體來建立新的型別的方式,在這個章節我們會繼續介紹更多型別的應用。 繼續閱讀 Empty Type、Rust、Rust 學習之路、空型別
Rust 學習之路─第二十二章:進階的特性用法 2018 年 7 月 2 日 Magic Len Rust、研究分享 這個章節會詳細介紹特性的關聯型別(Associated Type)、運算子多載(Operator Overloading)的實作方式、呼叫名稱相同但屬於不同特性的方法或關聯函數、替外部的型別實作新的特性。 繼續閱讀 Associated Type、Operator Overloading、Rust、Rust 學習之路、運算子多載、關聯型別
Rust 學習之路─第二十一章:進階的生命周期用法 2018 年 7 月 1 日 Magic Len Rust、研究分享 關於Rust的生命周期,我們在先前的章節中已經先學習了一部份了。在這個章節,我們將會學習如何使用生命周期的子型別,了解如何替泛型型別參數指定生命周期,以及特性物件的生命周期規則。 繼續閱讀 Rust、Rust 學習之路
Rust 學習之路─第二十章:不安全的Rust 2018 年 6 月 30 日 Magic Len Rust、研究分享 在最一開始的幾個章節,我們就已經了解到Rust程式語言在編譯階段時,就會進行許多檢查,使得程式在通過編譯後,進入執行階段時,能以有效又安全的方式運行。然而,在某些情況下,通常是處理跟作業系統和硬體有關的底層行為時,使用正常能夠確保安全性的Rust程式碼並無法實現出我們要的功能,此時就會需要使用到可能會讓程式變得不安全的開發方式。 繼續閱讀 raw pointer、Rust、Rust 學習之路
Rust 學習之路─第十九章:巨集 2018 年 6 月 29 日 Magic Len Rust、研究分享 在上一個章節中,我們學習了許多跟文字格式化有關的巨集。在這個章節,我們將會更深入地了解巨集到底是什麼東西,以及實作巨集的方式。 繼續閱讀 Declarative Macro、Metaprogramming、Procedural Macros、Rust、Rust 學習之路、元編程、宣告式巨集、巨集、程序式巨集
Rust 學習之路─第十八章:格式化文字 2018 年 6 月 28 日 Magic Len Rust、研究分享 Rust程式語言的標準函式庫中的「std::fmt」模組提供了多種巨集來格式化或是印出字串。在這個章節中,我們將會學習「format!」、「write!」、「writeln!」、「print!」、「println!」、「eprint!」、「eprintln!」巨集的詳細使用方式。 繼續閱讀 printf、Rust、Rust 學習之路、四捨六入五成雙
Rust 學習之路─第十七章:物件導向程式設計 2018 年 6 月 27 日 Magic Len Rust、研究分享 許多人會想問:Rust是物件導向的程式語言嗎?答案可以為是,也可以為不是,端看問這個問題的人對於「物件導向程式語言」定義的嚴格程度。Rust程式語言有結構體,而且可以使用「impl」關鍵字來替結構體實作特性和方法,甚至可以使用「pub」關鍵字來設定成員的存取權限,這難道不就是物件導向程式語言嗎?也許吧!但別忘了,Rust程式語言本身也提供了基本資料型態,我們先不論程式的難易度,其實可以只使用基本資... 繼續閱讀 Dynamic dispatch、encapsulation、inheritance、object-oriented programming、polymorphism、Rust、Rust 學習之路、State Pattern、Static dispatch、Trait Object、動態調度、多型、封裝、物件導向程式設計、特性物件、狀態模式、繼承、靜態調度
Rust 學習之路─第十六章:並發與並行 2018 年 6 月 26 日 Magic Len Rust、研究分享 有關於並發(concurrency)和並行(parallelism)的定義每個人可能有不一樣的解釋。筆者認為並行算是並發的子集合,所謂的「並發」,是指在某項工作結束之前,另一項工作就開始了,但這些項工作可以是同時執行,也可以是交替執行。而所謂的「並行」,是並發的一種設計方式,能將工作交給不同的處理器(邏輯處理器)來執行,而達成同時執行兩項以上工作的目的。程式語言如JavaScript,雖然只支援單... 繼續閱讀 concurrency、message passing、Mutex、parallelism、Rust、Rust 學習之路、Thread、並發、並行、互斥鎖、執行緒、訊息傳遞
Rust 學習之路─第十五章:智慧型指標 2018 年 6 月 25 日 Magic Len Rust、研究分享 相對於傳統直接使用記憶體位址來對應記憶體資料的指標,智慧型指標為一種資料結構,除了擁有基本的指標能對應記憶體資料的功能外,還可以提供其它不同的資訊以及額外的功能。例如我們先前使用過的Vec結構體和String結構體,就是智慧型指標。 繼續閱讀 Rust、Rust 學習之路、Smart Pointer、智慧型指標