pretty code

2019年6月12日 星期三

Rust 探索之旅 - Hello World

早上坐公車時無聊,看了一下 Rust 教學文件,開始我的 Rust 探索之旅。

Rust 和 C 一樣,都是編譯型語言,透過編譯會得到一個單一執行檔,可以方便的發佈給其他人。不像 script language,對方要執行時,需要有相關的安裝環境﹝理論上的,因為有些語言有第三方工具可以 build executable binary ﹞。

Rust 目前已知特點
01. cargo new "helloworld",可以自動建立一個 "helloworld" 的專案,"helloworld" 資料夾裡面會有 git 結構、Cargo.toml 的專案描述檔以及一個建立好的 "src\main.rs" 程式碼檔案,副檔名 "rs" 表示這是一個 Rust 的原始碼檔案。
02. 同 Go 一樣,cargo run 可以直接執行,cargo build 則是編譯 binary。
03. Rust 使用 let 宣告變數,變數預設是 immutable,加上 mut﹝mutable﹞表示變數可以被改值。
04. Rust 使用 use 宣告來存取內建函數。
05. "println!" 是一個 macro 而不是函數。
06. StringUTF-8 的編碼。
07. & 表示傳進函數的是一個參考﹝reference﹞,也可以加上 mut 關鍵字。
08. 在 println 中,"{}" 表示一個佔位符,有幾個後面就要有幾個對應的變數。
09. read_line包含換行字元,因為我們是 String,可以用 num.trim( ) 來去除。
10. Rust 變數命名慣例是小寫駝峰式,例如:s_len。


use std::io;

fn main() {
    println!("Guess the number");
    println!("Please input your guess");

    let mut num = String::new();

    io::stdin().read_line(&mut num)
        .expect("Failed to read line");

    println!("Your guess: {}", num);

    let s_len = num.len();
    let bytes = num.into_bytes();
    println!("lenth = {}, bytes = {:?}", s_len, bytes);
}

C:\helloworld>cargo run
Guess the number
Please input your guess:
123
Your guess: 123

lenth = 5, bytes = [49, 50, 51, 13, 10]

C:\helloworld>

沒有留言: