Rust 01

//https://kaisery.github.io/trpl-zh-cn/ch03-02-data-types.html
fn main() {
    println!("Hello, world!");
    //標量(scalar)類型代表一個單獨的值。Rust 有四種基本的標量類型:整型、浮點型、布爾類型和字符類型。
    // 你可能在其他語言中見過它們。讓我們深入瞭解它們在 Rust 中是如何工作的。

    //數值類型 整型 浮點
    let a = 2;

    println!("a :{a}");

    let b = 2.0;
    let c:f32 = 3.0;

    let sum = 5 + 10;
    let diff = 95.5-4.3;

    let product = 4*30;

    let quotient = 56.7/32.2;

    let truncated = -5/3;

    let remainder = 43%5;

    println!("remainder :{remainder}");

    //布爾類型
    let t = true;
    let f:bool = false;

    println!("t:{t} f:{f}");

    //字符類型
    let str1 = 'z';
    let z_al :char = 'Z';
    let black_hat = '🎩';

    println!("str1:{str1} z_al:{z_al} black_hat:{black_hat}");


}

Rust 01記錄的是Rust中的四種基本數據類型:整型、浮點、布爾、字符.

Rust 並不侷限於底層系統編程。它表達力強、寫起來舒適,讓人能夠輕鬆地編寫出命令行應用、網絡服務器等各種類型的代碼——在本書中就有這兩者的簡單示例。使用 Rust 能讓你把在一個領域中學習的技能延伸到另一個領域:你可以通過編寫網頁應用來學習 Rust,接着將同樣的技能應用到你的 Raspberry Pi(樹莓派)上。

Rust中數據類型是否可以使用鬆散類型定義

不,Rust 語言中不支持使用鬆散類型(loose typing)來定義數據類型。Rust 採用的是強類型(strong typing)和靜態類型(static typing)系統,其設計原則強調嚴格的類型檢查以確保內存安全和防止運行時錯誤。以下是 Rust 類型系統與鬆散類型相對立的幾個關鍵特點:
靜態類型: Rust 要求在編譯時就明確指定所有變量和常量的類型。編譯器會進行類型檢查,確保所有的表達式和函數調用都遵循已聲明的類型規則。如果類型不匹配,編譯器將拒絕編譯程序,強制開發者修正類型錯誤。
強類型約束: Rust 不允許變量在其生命週期內改變其原始聲明的類型。一旦一個變量被聲明爲特定類型,它只能存儲該類型或兼容類型的值。試圖將不同類型的數據賦值給已聲明變量將會導致編譯錯誤。
無隱式類型轉換: Rust 幾乎沒有隱式類型轉換(coercion)。除非有明確的類型轉換操作符(如 as)或編譯器能夠通過類型推斷確定轉換是安全的(如某些整數類型的自動提升),否則不同類型之間的混合運算或比較將導致編譯錯誤。
類型安全: Rust 的類型系統旨在消除類型相關的運行時錯誤,如空指針異常、數組越界、未初始化的變量使用等。通過嚴格的類型檢查和借用檢查等機制,Rust 力求在編譯階段就捕獲潛在的問題,而非依賴運行時檢查。
因此,Rust 的設計哲學與鬆散類型的編程語言如 JavaScript 形成了鮮明對比。在 Rust 中,開發者必須對每個變量的類型有清晰的認識並進行精確的類型聲明,編譯器則扮演了嚴格的類型守門人的角色,確保程序在類型層面的正確性和安全性。這樣的設計有助於減少運行時錯誤,提高程序的可靠性和性能。如果您需要在 Rust 中實現類似鬆散類型語言的靈活性,通常會藉助泛型、枚舉、模式匹配、trait 等語言特性來達到目的,同時保持類型系統的嚴格性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章