https://www.rust-lang.org/zh-CN/learn
https://kaisery.github.io/trpl-zh-cn/title-page.html

版本查看

  1. rustc --version

版本更新

  1. rustup update

rust卸载

  1. rustup self uninstall

本地文档

  1. rustup doc

本地例子

file:///C:/Users/Administrator/.rustup/toolchains/stable-x86_64-pc-windows-msvc/share/doc/rust/html/rust-by-example/index.html

安装插件

Code Debugger

rust-analyzer

Rust Test Explorer

创建项目

  1. cargo new hello_world

目录结构

1661412292302.png

Cargo.toml

  1. [package]
  2. name = "hello_world"
  3. version = "0.1.0"
  4. edition = "2021"
  5. # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
  6. [dependencies]

项目清单,它包含 Cargo 编译包所需的所有元数据。

main.rs

  1. fn main() {
  2. println!("Hello, world!");
  3. }

构建项目

在 hello_cargo 目录下,输入下面的命令来构建项目

  1. cargo build

检查项目

在不生成二进制文件的情况下构建项目来检查错误。

  1. cargo check

运行程序

在 hello_cargo 目录下,输入下面的命令来一步构建并运行项目

  1. cargo run
  1. * 正在执行任务: C:\Users\Administrator\.cargo\bin\cargo.exe run --package hello_world --bin hello_world
  2. Compiling hello_world v0.1.0 (F:\project\LFC.Rust.Demo\hello_world)
  3. Finished dev [unoptimized + debuginfo] target(s) in 0.33s
  4. Running `target\debug\hello_world.exe`
  5. Hello, world!
  6. * 终端将被任务重用,按任意键关闭。

发布(release)构建

  1. cargo build --release

包结构

Cargo 使用约定进行文件放置,以便轻松进入新的 Cargo

  1. .
  2. ├── Cargo.lock
  3. ├── Cargo.toml
  4. ├── src/
  5. ├── lib.rs
  6. ├── main.rs
  7. └── bin/
  8. ├── named-executable.rs
  9. ├── another-executable.rs
  10. └── multi-file-executable/
  11. ├── main.rs
  12. └── some_module.rs
  13. ├── benches/
  14. ├── large-input.rs
  15. └── multi-file-bench/
  16. ├── main.rs
  17. └── bench_module.rs
  18. ├── examples/
  19. ├── simple.rs
  20. └── multi-file-example/
  21. ├── main.rs
  22. └── ex_module.rs
  23. └── tests/
  24. ├── some-integration-tests.rs
  25. └── multi-file-test/
  26. ├── main.rs
  27. └── test_module.rs

:::warning

  • Cargo.toml并存储在包的根目录(包根目录)中。Cargo.lock
  • 源代码进入目录。src
  • 缺省库文件为 。src/lib.rs
  • 默认的可执行文件是 。src/main.rs
    • 其他可执行文件可以放在 中。src/bin/
  • 基准测试在目录中。benches
  • 示例位于目录中。examples
  • 集成测试进入目录。tests :::

    Cargo.toml vs Cargo.lock

    :::warning

  • Cargo.toml是关于从广义上描述你的依赖关系,并且是由你写的。

  • Cargo.lock包含有关依赖项的确切信息。它由Cargo维护,不应手动编辑。 ::: Cargo.toml是一个清单文件,我们可以在其中指定一堆关于包的不同元数据。例如,我们可以说我们依赖于另一个包:

    test