Rust从入门到跑路 - 第二篇 Hello Word

716 阅读2分钟

这是我参与更文挑战的第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包管理器,CargoRust的构建系统和包管理器。大多数Rust开发者都使用Cargo来管理他们的Rust项目,因为它可以为你处理很多任务,比如构建代码、下载依赖库并编译这些库。由于已经装好了rust环境,所以CargoRust内置的一部分。赶紧来检查一下是否安装成功。如果没有成功,可以卸载重装传送门

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.tomlpackage.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

结尾

下一节:猜数字游戏

上一节:Rust从入门到跑路 - 第一篇 环境准备