这是我参与更文挑战的第2天,活动详情查看: 更文挑战。
Rust是一门赋予每个人构建可靠且高效软件能力的语言。 下面所有的例子以及代码都是以Mac环境,编辑器是vscode,如果遇到什么问题,欢迎加入交流群,一起交流。
入门:Hello World
每当我们学习一门新语言,总是以打印出一个hello world
做为第一个入门教程。所以学习Rust也不例外。
新建一个工程
创建一个rust_projects
和子目录hello_world
,并用vscode打开
mkdir rust_projects
cd rust_projects
code . // 快捷vscode打开的方式,能用vscode打开就好
mkdir hello_world
cd hello_world
新建Rust文件
Rust文件使用.rs结尾的,文件的命名规范是是以下划线来分割。例如来创建一个helloworld
文件,它的命名应该是hello_world.rs
,而不是helloworld.rs
或者是helloWorld.rs
。新建hello_world.rs
文件:
touch hello_world.rs
新增入口main函数,打印Hello world。
fn main() {
println!("Hello, world!");
}
如何运行呢,如果是nodejs的话,只需要node xxx.js
即可,但是Rust需要编译,原因是JavaScript的编译是宿主环境即时编译的,所以感觉上是没有编译。所以我们需要编译刚刚写好的Rust的文件。
rustc main.rs
./main
执行完上面的脚本,终端输出Hello world
就是成功了。恭喜你,你已经完成了一个Rust的程序了。那下面在来一个小游戏加深对Rust理解。
Rust包管理器 VS NPM
在开始游戏之前,有必要先了解Rust包管理器,因为小游戏需要其他的依赖。NPM是NodeJS包管理器,Cargo
是Rust
的构建系统和包管理器。大多数Rust开发者都使用Cargo来管理他们的Rust项目,因为它可以为你处理很多任务,比如构建代码、下载依赖库并编译这些库。由于已经装好了rust
环境,所以Cargo
是Rust
内置的一部分。赶紧来检查一下是否安装成功。如果没有成功,可以卸载重装传送门。
cargo --version 或者 cargo -V
输出 cargo x.y.z (xxxxxxx yyyy-mm-dd) 就是成功了
那我们来用Cargo
初始化一个项目,不同的是npm只会帮你创建package.json,而Cargo
会帮你创建文件夹以及相关的文件。
cd ../ 此时在rust_projects目录下
cargo new guessing_game 等价于 npm init -y
cd guessing_game
此时目录的结构为
.
├── Cargo.lock // 跟package-lock.json 等价
├── Cargo.toml // 跟package.json 等价
├── src
│ └── main.rs // 入口文件
└── target // 忽略
这时候,Cargo.toml
跟package.json
相似,项目名字,版本号,依赖等等。Cargo也可以帮我们打包,发布,Rust package仓库地址。详细功能后续在介绍。
[package]
name = "guessing_game" // package.json name
version = "0.1.0" // package.json version
authors = [" "] // package.json authors
edition = "2018" // 通俗来讲 实际上跟nvm的功能差不多,切换Rust使用的版本,后续会有详细介绍,可以手动删掉
[dependencies] // package.json dependencies
结尾
下一节:猜数字游戏