Hello,Rust

Rust是一門內存安全同時有着不輸於C++性能的系統編程語言。粗略地總結一下今天學習的內容。

環境安裝

在Rust官方網站下載rustup後根據提示完成安裝即可。

Hello, wold

我們在記事本中寫入如下代碼:

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

\quadfn用來聲明一個新函數,空格後面跟着的爲函數名,()內爲函數參數,其中main函數爲程序入口。函數體用{}包圍。
\quad函數體中,println! 調用的是一個宏(marco)而不是函數,如果是函數則沒有!。
\quad把文件保存爲 .rs格式後,打開cmd或PowerShell,進入該文件所在目錄,執行rustc xxx.rs命令進行編譯,然後再執行 ./xxx來運行該程序。

Cargo

\quadCargo是 Rust的構建系統和包管理器。請儘量使用Cargo來管理Rust項目,因爲它可以爲你處理很多任務,比如構建代碼、下載依賴庫並編譯這些庫。(我們把代碼所需要的庫叫做依賴(dependencies))。
\quad在projects目錄下,執行cargo new hello命令,新建名爲hello的目錄,進入hello目錄並列出文件,將會看到Cargo生成了兩個文件和一個目錄:一個 Cargo.toml 文件,一個 src 目錄,以及位於 src 目錄中的 main.rs 文件。它也在hello目錄初始化了一個 git 倉庫,以及一個 .gitignore 文件。
\quad執行cargo build命令,會對該項目進行編譯。
\quad執行cargo run命令,會對該項目編譯並運行。
\quadCargo還提供了一個叫cargo check的命令。該命令快速檢查代碼確保其可以編譯,但並不產生可執行文件。

猜數字

官方文檔提供的第二個示例。

use std::io; //提供標準輸入的庫
use std::cmp::Ordering; //提供cmp方法和Ordering類型
use rand::Rng; //Rng是一個trait,暫時不懂,它提供隨機數生成器應實現的方法
fn main() {
	println!("猜猜看!");
	let secret_num = rand::thread_rng().gen_range(1, 101);
	println!("The secret num is {}", secret_num);
	
	loop {
		println!("請輸入你的猜測");
		
		let mut guess = String::new();
		io::stdin().read_line(&mut guess).expect("Failed to read line");
		let guess: u32 = match guess.trim().parse() {
			Ok(num) => num,
			Err(_) => continue,
		};
		println!("You guessed: {}", guess);
		
		match guess.cmp(&secret_num) {
			Ordering::Less => println!("猜小了"),
			Ordering::Greater => println!("猜大了"),
			Ordering::Equal => {
				println!("猜對了!");
				break;
			}
		}
	}
}

use:引入到當前作用域,類似C++的using
std::io:std是標準庫,io庫來自std庫,雙冒號語法類似C++
let:用於創建變量,在rust中變量默認是不可變的(這確實驚到我了)
let mut:創建可變的變量
println!("{}", var):裏面的花括號是佔位符,後面是參數列表
loop:創建一個無限循環
String::new():String是一個類型,new()是它的關聯函數,不依賴於實例對象,用於創建對象
match:條件分支
&mut guess:引用變量guess,因爲要讀取輸入的內容到guess裏所以要加mut

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