Rust 入門筆記 (1) - 千里始於 Hello, world!
前言
前一篇提到幾個我自己規劃的學習階段,在之前的探索網頁前端工具的主題中,透過幾篇文章研究了 Rspack、Oxc、SWC 等 Rust-based 開發工具各種驚人的效能後,差不多也該進入階段二來學習寫個 Rust 版本的 Hello, world
了!
環境安裝
正如龍哥在這篇說的軟體改版時安裝方式可能會有變動,因此最好的依據還是參考官方文件安裝適合自己系統的方式。而這邊紀錄我用的 Macbook M1 系統現主時的安裝方式,如果與我雷同的也可以參考看看。
官方文件中建議使用 rustup 這個工具來安裝,可以理解像是 Node.js 中的 NVM 一樣,可以拿來安裝、升級、切換 Rust 版本:
一路按 enter 用預設版本安裝,裝完後會看到這樣的訊息:
意思是如果你要在當前的 shell 中直接執行剛安裝的 Rust compiler 會需要這樣做,因為我用的是 zsh
所以執行這行:
執行後就可以來測試看看有沒有安裝成功:
有看到版本資訊就是成功了,如果之前裝過想更新到最新版本的話可以用:
解除安裝 Rust 與 rustup 的話可以用這個指令:
想確認目前環境中有安裝的 rustup 版本可以這樣下:
其他安裝、移除特定版本就不一一列出,可以參考這個 cheatsheet。
開始來寫程式
找個適合的地方建一個資料夾,並用 VS Code 開啟 (或要手動建立也可以):
在這個 main.rs
中就可以寫上這段:
這裡有幾個重點:
fn
是 Rust 中宣告函式的方式main
是 Rust 中的保留字,代表一個 Rust 程式的進入點- 這個
println!
就類似 JavaScript 中的console.log
- 其中的這個
!
是 Rust 中一個稱為巨集 (macro) 的觀念,與一般 function 的其中一個差異在於 macro 可以接收變動數量的參數,像是println!("hello {}", name)
這種格式化寫法,應該是可以理解 macro 像是比較萬能的 function 吧 - 在 Rust 中有一份程式碼風格指引建議許多約定俗成的格式,而關於縮排習慣,會是 4 個 spaces
🍿 說到 Tabs vs Spaces 就不得不回味一下 Silicon Valley 中的經典橋段:
編譯與執行程式
看完了語法解析後接著要怎麼執行這個程式呢?前面在介紹各種 Rust 工具時不斷提到 Rust 是一款編譯型語言,因此在實際執行前,會像 C 語言一樣,需要用編譯器編譯出執行檔:
執行後會輸出一個 main
的同檔名 binary 執行檔,此時如果執行 ./main
就會印出訊息:
有別於動態語言的 JavaScript 與 Python 可以直接用 runtime 執行,編譯型語言會需要編譯後才能執行,也因此你能提前在執行程式前就在編譯階段中確認是否有潛在的錯誤。
小結
為了瞭解 Rust 生態系,就不得不來學學 Rust 語言本身,今天回頭從最基礎的 Hello, world
開始學起,也記錄從安裝到執行過程的筆記,明天將會來繼續了解 Rust 的套件管理工具 Cargo,我們明天見!