Rust 初識與環境建置
從 JavaScript 開發者視角認識 Rust,了解 Rust 能做什麼,以及如何建置開發環境
Rust 初識與環境建置
🎯 學習目標
通過本模組,你將:
- 了解 Rust 能做什麼,以及它與 JavaScript 的交集
- 掌握從 JavaScript 到 Rust 的語言遷移學習法
- 學會安裝和設定 Rust 開發環境
- 建立並執行你的第一個 Rust 專案
🤔 為什麼學習 Rust?
作為 JavaScript 開發者,你可能會問:
- 我已經會 JavaScript 了,為什麼還要學 Rust?
- Rust 能幫我解決什麼問題?
- 學習 Rust 對我的職業發展有什麼幫助?
Rust 能為你帶來什麼?
- 效能提升 - Rust 程式執行速度接近 C/C++,比 JavaScript 快 10-100 倍
- 記憶體安全 - 編譯時檢查,避免記憶體洩漏和空指標錯誤
- 並行安全 - 編譯時保證多執行緒安全,避免競爭條件
- 系統程式設計 - 可以編寫作業系統、驅動程式、嵌入式程式
- WebAssembly - 在瀏覽器中執行高效能程式碼
- 職業發展 - 掌握系統級程式語言,拓寬技術棧
JavaScript 與 Rust 的互補關係
場景 | JavaScript 優勢 | Rust 優勢 |
---|---|---|
Web 前端 | ✅ 生態系統成熟 | ✅ WebAssembly 高效能 |
Web 後端 | ✅ 開發效率高 | ✅ 效能和安全 |
桌面應用 | ✅ 跨平台簡單 | ✅ 原生效能 |
行動應用 | ✅ 快速原型 | ✅ 原生效能 |
系統程式設計 | ❌ 不適合 | ✅ 主要優勢 |
遊戲開發 | ✅ 有限 | ✅ 高效能 |
🧠 從 JS 到 Rust 的學習策略
學習心態調整
學習 Rust 時,需要調整一些思維習慣:
JavaScript 思維:
- 關注"做什麼" - 直接寫業務邏輯
- 執行時檢查 - 錯誤在執行時發現
- 自動記憶體管理 - 不用關心記憶體分配
Rust 思維:
- 關注"如何做" - 需要明確指定型別和記憶體管理
- 編譯時檢查 - 錯誤在編譯時發現
- 顯式記憶體管理 - 透過所有權系統管理記憶體
學習策略
- 對比學習 - 每個 Rust 概念都對應 JavaScript 概念
- 漸進式 - 從簡單語法到複雜概念
- 實踐驅動 - 每個概念都要動手驗證
- 專案導向 - 透過實際專案鞏固知識
🛠️ 安裝 Rust 開發環境
1. 安裝 Rust
Rust 使用 rustup
作為版本管理工具,類似於 Node.js 的 nvm
:
# 安裝 Rust(類似 nvm install node)curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh# 或者使用 Homebrew(macOS)brew install rust# 驗證安裝rustc --versioncargo --version
2. 設定 IDE
推薦使用 VS Code,安裝以下擴充套件:
- rust-analyzer - Rust 官方推薦的程式碼分析工具
- Even Better TOML - 設定檔語法高亮
- crates - 相依性管理
- Error Lens - 錯誤提示增強
- CodeLLDB - 偵錯支援
3. 設定 Cargo
Cargo 是 Rust 的套件管理器和建置工具,類似於 npm:
# 查看 Cargo 設定cargo --version# 設定鏡像源(中國大陸使用者)# 在 ~/.cargo/config.toml 中新增:[source.crates-io]replace-with = 'ustc'[source.ustc]registry = "https://mirrors.ustc.edu.cn/crates.io-index"
🚀 Hello, Rust:第一個專案
建立新專案
# 建立新專案(類似 npm init)cargo new hello-rustcd hello-rust# 專案結構hello-rust/├── Cargo.toml # 專案設定(類似 package.json)└── src/└── main.rs # 入口檔案(類似 index.js)
專案設定檔對比
正在加载...
第一個 Rust 程式
正在加载...
執行專案
# 執行專案(類似 npm start)cargo run# 建置專案(類似 npm run build)cargo build# 建置發布版本(最佳化後的二進位檔案)cargo build --release# 執行測試(類似 npm test)cargo test# 檢查程式碼(類似 npm run lint)cargo clippy# 格式化程式碼(類似 npm run format)cargo fmt
🔍 理解 Rust 專案結構
標準專案結構
my-rust-project/├── Cargo.toml # 專案設定與相依性├── Cargo.lock # 相依性鎖定檔案(類似 package-lock.json)├── src/│ ├── main.rs # 二進位程式入口│ ├── lib.rs # 函式庫入口(可選)│ ├── bin/ # 多個二進位入口(可選)│ │ └── another_main.rs│ └── tests/ # 整合測試(可選)│ └── some_test.rs└── examples/ # 範例程式(可選)└── some_example.rs
📚 總結
在本模組中,我們學習了:
- Rust 的優勢及其與 JavaScript 的關係。
- 如何設定 Rust 開發環境。
- 如何使用 Cargo 建立、執行和管理 Rust 專案。
- Rust 專案的基本結構。
在下一個模組中,我們將深入探討 Rust 和 JavaScript 的語法細節比較。