Rust学习笔记(1)—— 安装、cargo、crate
很久没有更新博客了,最近自学 rust
, 这里记录一下。本文参考了Rust Book写的
Rust 语言初探
安装
见文档,十分简单,这里不赘述
hello world
touch main.rs
创建文件,并写下:
1 2 3
| fn main() { println!("Hello world"); }
|
rust 是需要静态编译的语言,所以先执行 rustc main.rs
编译为二进制码后再执行,可看到控制台打印 hello world
:
cargo
的使用
rustc
只能试用在一些比较简单的程序,复杂的程序需用到 rust 自带的项目管理工具 cargo
,
本仓库使用讲的每个章节均用一个项目的方式, 每个项目均能独立跑起, 下面是几个常用命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| cargo new <ProjectName>
cd <ProjectName> cargo build
cargo build --release
cargo run
cargo check
|
Cargo.toml
类似 js 的package.json
,用来描述项目信息,如:
注释
变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| fn main() { let x = 88;
let mut y = 99; y = 100;
println!("x is {}, y is {}", x, y)
let mut guess = String::new(); }
|
crate 库的使用
- rust 的库叫
crate
, 需要用的 lib 包可在 crate 官网
里找到。这次我们用随机生成数字的库, 在项目目录里添加:
1 2 3 4 5
| ...
[dependencies] rand = "^0.3.23"
|
- 添加完成后,返回终端,输入
cargo check
或 cargo build
,则可以下载该 lib 包, 如:
1 2 3 4 5 6 7 8 9 10 11
| ziyouzhiyi@zyzy: ~/Documents/code/rust-learn/test-project main ⚡ $ cargo check [11:57:13] Updating crates.io index Downloaded rand v0.4.6 Downloaded rand v0.3.23 Downloaded 2 crates (87.7 KB) in 1.38s Compiling libc v0.2.126 Checking rand v0.4.6 Checking rand v0.3.23 Checking test-project v0.1.0 (/Users/ziyouzhiyi/Documents/code/rust-learn/test-project) Finished dev [unoptimized + debuginfo] target(s) in 5.74s
|
Cargo.lock
文件:当第一次安装 lib 包成功后,会将该包 rand v0.3.23
所依赖包所有 lib 包版本号放入 Cargo.lock
文件中,以后每次重新构建,均会按照里面列举的版本进行安装,除非自己手动进行 rand v0.8.4
版本升级。
cargo update
命令:如要更新 b 版本以上的版本,须手动在 toml
文件里重新写上版本号再执行 update 命令,此时,cargo 会忽略 Cargo.lock
文件直接更新