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
注释
变量 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.38 s 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.74 s
Cargo.lock
文件:当第一次安装lib包成功后,会将该包 rand v0.3.23
所依赖包所有lib包版本号放入 Cargo.lock
文件中,以后每次重新构建,均会按照里面列举的版本进行安装,除非自己手动进行 rand v0.8.4
版本升级。
cargo update
命令:如要更新b版本以上的版本,须手动在 toml
文件里重新写上版本号再执行update命令,此时,cargo 会忽略 Cargo.lock
文件直接更新