Hello,Rust

Rust是一门内存安全同时有着不输于C++性能的系统编程语言。粗略地总结一下今天学习的内容。

环境安装

在Rust官方网站下载rustup后根据提示完成安装即可。

Hello, wold

我们在记事本中写入如下代码:

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

\quad fn用来声明一个新函数,空格后面跟着的为函数名,()内为函数参数,其中main函数为程序入口。函数体用{}包围。
\quad 函数体中,println! 调用的是一个宏(marco)而不是函数,如果是函数则没有!。
\quad 把文件保存为 .rs格式后,打开cmd或PowerShell,进入该文件所在目录,执行rustc xxx.rs命令进行编译,然后再执行 ./xxx来运行该程序。

Cargo

\quad Cargo是 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命令,会对该项目编译并运行。
\quad Cargo还提供了一个叫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;
			}
		}
	}
}

我们可以在Rust语法身上看到很多熟悉的影子,比如C++的双冒号,Javascript的let。
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值