rust的安装

安装rust编译器及其IDE

官网:https://rust-lang.org/tools/install/ 网上下载init.exe文件然后点击,默认输入1并确认即可

IDE:推荐使用RustRover或者是用vscode+rust的插件,我这里用RustRover

更新、卸载和查看rust版本

更新

1
rustup update

卸载

1
rustup self uninstall

查看版本

1
rustc --version

查看本地文档

1
rustup doc

初识rust

rust对应程序文件的后缀名都是rs,文件的命名规范是小驼峰+_ 比如hello_world.rs

从hello world开始

在main.rs中输入

1
2
3
4
fn main()
{
println!("hello world!");
}

解析

  • main函数是每个rust可执行程序最先运行的代码
  • rust的缩进是四个空格
  • println!是一个rust macro(宏),如果是函数的话就没有!

简单的rust程序是如何编译的

编译命令

1
rustc main.rs

就会生成main.exe的可执行文件还有一个main.pdb文件(包含调试信息)

而rustc编译只适合简单的项目,对于复杂的项目我们就需要一个构建系统和包管理的工具,在Python中是pip,在C语言中是gcc和cmake,而在rust中是Cargo

如果要用cargo创建项目,就

1
cargo new hello_cargo

cargo项目是如何编译的

在RustRover中把大部分的编译细节都隐藏了,对于软件开发者来说是好事,但是rust应用最多的是操作系统内核和编译器中,需要经常在原始的条件下编译,这里将着重介绍cargo项目的编译过程,以便后续的项目开发

创建可执行文件

1
cargo build

一般在target/debug/文件下面,生成exe文件

运行cargo项目

1
cargo run

这个命令实现编译代码+执行结果,如果已经编译过且源码未改变就直接运行二进制文件

示例

1
2
3
4
5
6
C:\Users\Tom\Desktop\projections\rustLearn>cargo run
Compiling rustLearn v0.1.0 (C:\Users\Tom\Desktop\projections\rustLearn)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.89s
Running `target\debug\rustLearn.exe`
Hello, world!
just do it!

如果编译过就没有Compiling这一行

检查代码

1
cargo check

检查代码,确保能通过编译,但是不产生任何可执行文件。在编写代码的时候就没必要反复编译和运行,直接check就行,需要运行的时候再运行

为发布而构建

也就是发行release版本,编译时会进行优化,代码会运行的更快,但是编译时间更长。会在 target/release而不是 target/debug生成可执行文件

项目的结构

这里的项目结构是RustRover中的新建项目的结构

1
2
3
4
5
6
7
8
9
10
项目名
-src
--main.rs
-target
--debug
--.rustc_info.json
--CACHEDIR.TAG
-.gitignore
-Cargo.lock
-Cargo.toml

源代码都应该在src目录下,顶层目录可以放置:README、许可信息、配置文件和其它与程序源码无关的文件

Cargo.toml

Tom’s Obvious,Minimal Language(toml) 格式,是cargo的配置格式

1
2
3
4
5
6
[package]
name = "rustLearn"
version = "0.1.0"
edition = "2024"

[dependencies]

其中,[pacakge],是一个区域标题,表示下方内容是用来配置包(package)的,name表示项目名,version为版本,edition为rust版本,{dependencies}为依赖,在rust中代码的包成为crate.

Cargo.lock

第一次运行cargo build 会在顶层目录生成cargo.lock文件该文件负责追踪项目依赖的精确版本,不需要手动修改该文件

进入rust编程世界

数据类型、函数、注释

控制流

参考资料

  1. 《The Rust Programming Language》v1
  2. Rust编程语言入门教程(Rust语言/Rust权威指南配套)【已完结】