cargo new hello_world
運(yùn)行命令后就我們創(chuàng)建好一個(gè) rust 項(xiàng)目,我們看一下剛剛創(chuàng)建好的 hello_world 項(xiàng)目,cargo 有點(diǎn)類(lèi)似 npm,我們用 npm 管理 javascript 項(xiàng)目,而用 cargo 來(lái)管理 rust 項(xiàng)目。
屏幕快照 2019-03-08 下午8.14.34.png
- Cargo.toml
[package]
name = "hello_world"
version = "0.1.0"
authors = ["jangwoo <zidea2015@163.com>"]
edition = "2018"
[dependencies]
package 中包含我們項(xiàng)目的基本信息
dependencies 應(yīng)該是項(xiàng)目的依賴
看 src 文件夾下的 main.rs
fn main() {
println!("Hello, world!");
}
運(yùn)行這個(gè)命令就可以查看項(xiàng)目輸出了,第一次可能花一些時(shí)間。
cargo run
學(xué)習(xí) c++ 或其他語(yǔ)言時(shí)候,開(kāi)始我們都喜歡以一個(gè)文字游戲開(kāi)始學(xué)習(xí)的旅程。
use std::io;
fn main() {
println!("Guess the number!");
println!("Please input your guess.");
let mut guess = String::new();
io::stdin().read_line(&mut guess)
.expect("Failed to read line");
println!("You guessed: {}", guess);
}
運(yùn)行結(jié)果,提示我們輸入一個(gè)數(shù)字,我們輸入后回車(chē),會(huì)顯示我們輸入的數(shù)值
屏幕快照 2019-03-08 下午8.33.51.png
我們對(duì)比其他語(yǔ)言,特別是 c++ 來(lái)學(xué)習(xí) rust。首先搭建 rust 和運(yùn)行編譯都感覺(jué)比 c++ 要容易些。
- use::io 表示引入輸入輸出的庫(kù)
- fn 表示主函數(shù)
- println! 用于輸出內(nèi)容到屏幕上
- mut 表示 guess 是一個(gè)可變得變量,rust 默認(rèn)是不可變的變量
- String::new() :: 表示調(diào)用 String 類(lèi)的靜態(tài)方法
- & 表示引用,使用引用是為了節(jié)省內(nèi)存,無(wú)需將數(shù)據(jù)復(fù)制一份,引用是 rust 的難點(diǎn)也是 rust 的優(yōu)點(diǎn)。
- &mut guess 表示一個(gè)可變引用,如果使用 &guess表示不可變的引用
在 rust 變量默認(rèn)是不可變(immutable),這樣也是 rust 的可愛(ài)之處,因?yàn)?immutable 提高安全性,且便于并發(fā)。
fn main() {
let x = 5;
println!("The value of x is: {}", x);
x = 6;
println!("The value of x is: {}", x);
}
error[E0384]: cannot assign twice to immutable variable `x`
但有的時(shí)候我們不可避免,將 x 轉(zhuǎn)變?yōu)?mutable 可變量。
let mut x = 5;