langShift

Rust 初識與環境建置

從 JavaScript 開發者視角認識 Rust,了解 Rust 能做什麼,以及如何建置開發環境

Rust 初識與環境建置

🎯 學習目標

通過本模組,你將:

  • 了解 Rust 能做什麼,以及它與 JavaScript 的交集
  • 掌握從 JavaScript 到 Rust 的語言遷移學習法
  • 學會安裝和設定 Rust 開發環境
  • 建立並執行你的第一個 Rust 專案

🤔 為什麼學習 Rust?

作為 JavaScript 開發者,你可能會問:

  • 我已經會 JavaScript 了,為什麼還要學 Rust?
  • Rust 能幫我解決什麼問題?
  • 學習 Rust 對我的職業發展有什麼幫助?

Rust 能為你帶來什麼?

  1. 效能提升 - Rust 程式執行速度接近 C/C++,比 JavaScript 快 10-100 倍
  2. 記憶體安全 - 編譯時檢查,避免記憶體洩漏和空指標錯誤
  3. 並行安全 - 編譯時保證多執行緒安全,避免競爭條件
  4. 系統程式設計 - 可以編寫作業系統、驅動程式、嵌入式程式
  5. WebAssembly - 在瀏覽器中執行高效能程式碼
  6. 職業發展 - 掌握系統級程式語言,拓寬技術棧

JavaScript 與 Rust 的互補關係

場景JavaScript 優勢Rust 優勢
Web 前端✅ 生態系統成熟✅ WebAssembly 高效能
Web 後端✅ 開發效率高✅ 效能和安全
桌面應用✅ 跨平台簡單✅ 原生效能
行動應用✅ 快速原型✅ 原生效能
系統程式設計❌ 不適合✅ 主要優勢
遊戲開發✅ 有限✅ 高效能

🧠 從 JS 到 Rust 的學習策略

學習心態調整

學習 Rust 時,需要調整一些思維習慣:

JavaScript 思維:

  • 關注"做什麼" - 直接寫業務邏輯
  • 執行時檢查 - 錯誤在執行時發現
  • 自動記憶體管理 - 不用關心記憶體分配

Rust 思維:

  • 關注"如何做" - 需要明確指定型別和記憶體管理
  • 編譯時檢查 - 錯誤在編譯時發現
  • 顯式記憶體管理 - 透過所有權系統管理記憶體

學習策略

  1. 對比學習 - 每個 Rust 概念都對應 JavaScript 概念
  2. 漸進式 - 從簡單語法到複雜概念
  3. 實踐驅動 - 每個概念都要動手驗證
  4. 專案導向 - 透過實際專案鞏固知識

🛠️ 安裝 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 --version
cargo --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-rust
cd 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 的語法細節比較。