今天我們要來看的是 Binary Search Tree (BSTs)。Tree 是由有限節點組成具有層次關係的集合。以下圖為例,最上面的節點稱作根節點 (Ro...
動態連結是讓程式能載入動態函式庫,這些函式庫在 Linux 下一般都是以 .so 的副檔名做結尾,這些檔案能在程式執行起來後才由動態連結器載入程式的記憶體空間供...
就在昨天 Rust 2018 第一個正式版出來了,距離上次發文也有點時間了,其它功能大部份都在之前已經先介紹過了,不過這次的 1.31 版還有個重要的功能,那就...
Cell 與 RefCell 能讓變數沒宣告 mut 也能修改,因為有時你還是需要在有多個 borrow 的情況下能修改變數,它們的文件都在 std::cell...
列舉 (Enum) 列舉是 Rust 中的一個型態,其為多個 variant 所組成: enum Color { Red, Green, Blue,...
在介紹 Rust 以前要先來談談為什麼用 Rust ,Rust 雖說是一個相對算新的語言,跟以往介紹系統運作所使用的 C 比較來的話,不過 Rust 背後有個強...
上一篇介紹了 WebAssembly 既然都要學編譯式語言不如就來學 Rust 吧! Rust 的緣起 首先來一段 Mozilla 官方的說明 Rust 是...
這篇來談談執行緒 (thread) 與 thread local storage (TLS) ,雖說是這樣,但事實上主要是想來看看 TLS 是怎麼運作的,不過在...
這是我第一次參加鐵人賽,因為平常比較沒有分享文章的習慣,就想趁這個機會讓自己多寫一點文章,同時介紹一下這個之前意外讓我入坑,很有趣的一個程式語言 Rust 。...
Python 是個廣泛使用的腳本語言,想必或多或少都有聽過這個名字吧,人工智慧、科學計算、統計、應用程式、爬蟲等等的領域無不存在,非常的實用,如果想學個腳本語言...
Rust 有個重要的功能叫 borrow checker ,它除了檢查在上一篇提到的規則外,還檢查使用者會不會使用到懸空參照 (dangling referen...
使用Spike執行RISC-V gnu toolchain編譯出來的ELF檔,就可以得到完整執行此EFL檔需要用到哪些指令。利用script統計後可以得到如下結...
今天我們要來談談 Sorting,也就是排序。排序看似不起眼,但其實在電腦的世界扮演了許多關鍵的角色,例如當我們要更有效率地搜尋出某個東西的時候,又例如我們要按...
今天要來介紹 Atomic 與 Channel ,另外還會介紹 crossbeam 這個 crate 。 這篇的範例也都請在自己的電腦上測試。 Atomic...
本系列目錄 《來做個網路瀏覽器吧!》文章列表 前言 什麼是 Servo? Servo 是一款專為應用軟體和嵌入式應用而設計的現代化的高效能瀏覽器引擎 緣...
這篇主要是來介紹 Rust 的社群所提供的方便的工具與 crate ,為避免重覆,若之後有打算深入介紹的我就不在這邊做介紹了。 工具 Clippy Clippy...
現在大多的程式語言都有例外 (exception) ,這讓程式碰到錯誤時可以立即的拋出例外,拋出的例外會中斷目前整個程式的流程,並開始往上找例外處理的程式,可是...
這篇要來介紹一個很強大的系統呼叫 ptrace 它可以用來中斷別的程式,讀取與寫入別的程式的資料,它的用途基本上就是拿來實作除錯器,當然除錯器並不是只要能暫停程...
這次的程式碼在 https://github.com/DanSnow/rust-intro/tree/master/clib 建立可以給 C 使用的函式庫 Ru...
始 不知道大家有沒有看過有一本書叫做 seven languages in seven weeks,這本書是希望能夠讓你用七週的時間,每個禮拜都能夠去認識一門新...
Rust 中的列舉是 Rust 一個強大的功能,它跟 C 的列舉最大的不同是,它可以帶有資料 enum Foo { A(i32), B { a:...
是說在之前介紹到的 libunwind ,因為它有讀取 frame 資訊的功能,實際上還有個很有用的用途,顯示 backtrace ,另外在 Rust 發生 p...
大家好,今天要來優化我們之前做的專案,並且替他加上和 DB 連線的功能,那麼首先我們先來調整一下原本的 main 這支程式還有我們的專案架構, 添加 Log 對...
Async IO 在開始之前要先來介紹一下非同步的 IO 是怎麼回事,如果你有碰過比較底層的系統程式,你可能會知道在 Linux 下用來開啟檔案的 open 有...
偶爾我們要呼叫外部的程式來幫我們處理一些東西,這個時候就是 std::process 下的東西登場的時候了。 Command Command 可以讓我們呼叫外部...
這次的程式碼一樣在: https://github.com/DanSnow/rust-intro/tree/master/message-board 今天要來把...
工作之餘興起開發side project的念頭,幾經思考後決定以Rust語言撰寫一個基本的RISC-V模擬器,這兩項技術之前都從未接觸,是個學習新知的好機會。...
Rust 的基本函式庫其實包的東西算很少了,不過還是挺大的,因為 Rust 的標準函式庫並沒有預裝在各個電腦上,所以 Rust 都是直接把必要的部份也直接包含進...
集合型態 這邊介紹的集合型態只會再介紹 HashMap 與 HashSet ,不過 Rust 實際上並不只這兩種而已,詳細建議看一下 std::collecti...
函數式程式設計的概念是來於數學上的函數,也就是一個輸入對應一個結果,不會受到其它東西的影響,所以程式講究沒有狀態,沒有副作用 (side effect) ,而在...