# 第 1-3 天:開始 Rust 冒險

https://levelup.gitconnected.com/day-1-3-embarking-on-the-rust-adventure-6af6466d0b37?source=rss—-5517fd7b58a6—4

第 1-3 天:探險 Rust 之旅

初次見面,Rust!

我正深入探索 Rust 的世界,這種語言以其性能、安全性和表達能力而聞名。我原先有 JavaScript 和 Python 的背景,對於探索其獨特的特性和挑戰感到興奮。

第一印象

安裝:使用 rustup 輕鬆設置 Rust,跨平台使用,無需擔心平台特定的怪異。

遊戲場:Rust 遊戲場(https://play.rust-lang.org/)是一個用於實驗的絕妙工具。它提供即時反饋和代碼執行的視覺呈現。

語法:Rust 的語法熟悉但又有所不同。它帶有 C 風格,但又具現代感。

Hello, world!:

fn main() {
println!(“Hello, world!”);
}

這個簡短的代碼展示了一些關鍵點:

函數:Rust 使用 fn 來定義函數。

主函數:主函數是每個 Rust 程序的入口。

Println 宏:Println!宏將一個字符串打印到控制台,然後換行。

核心概念

所有權:這是 Rust 的核心特徵。每個值都有一個單一的所有者,確保內存安全,並防止懸空指針。

範例:

// JavaScript/Python:
let name = “Alice”; // 没有顯式所有權
name = “Bob”; // 沒有問題

// Rust:
let name = String::from(“Alice”); // name 擁有這個字符串
let name2 = name; // 錯誤:嘗試兩次移動所有權

借用:為了共享值而不轉移所有權,Rust 使用引用。

範例:

let name = String::from(“Alice”);
let greeting = format!(“Hello, {}!”, &name); // 借用名稱來創建問候語

生命週期:Rust 跟踪引用的生存時間,防止懸空引用。

範例:

fn longest<'a>(x: &’a str, y: &’a str) -> &’a str {
if x.len() > y.len() {
x
} else {
y
}
}

與 JavaScript 和 Python 的比較

內存安全:Rust 在編譯時強制執行內存安全,防止常見錯誤,如空指針異常和內存泄漏。JavaScript 和 Python 依賴運行時檢查,可能導致意外崩潰。

性能:Rust 通常編譯為與 C++一樣或更快的代碼。JavaScript 和 Python 由於其動態特性和運行時開銷,通常較慢。

顯式性:由於其對安全性和控制的關注,Rust 需要更加明確的代碼。JavaScript 和 Python 可能更為簡潔,但也更容易出現錯誤。

早期反思

Rust 的學習曲線比 JavaScript 或 Python 陡峭,但其好處令人信服。我渴望深入研究所有權、借用和生命週期,以發掘其完整潛力。敬請期待更多 Rust 探險!

via Level Up Coding – Medium

January 17, 2024 at 04:30AM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *