Rust的相关工具

1,703 阅读3分钟

[这是我参与11月更文挑战的第15天,活动详情查看:2021最后一次更文挑战]


Rust如何让程序员更优秀

Rust 程序设计语言的本质在于 赋能(empowerment),通过严苛的约束提高编码能力。Rust语言可以使你无后顾之忧的走入“系统层面”(“systems-level”)的工作,接触内存管理数据表示并发等底层细节。在 Rust 中,编译器充当了守门员的角色,它拒绝编译存在这些难以捕获的 bug 的代码,这其中包括并发 bug。通过与编译器合作,团队将更多的时间聚焦在程序逻辑上,而不是追踪 bug。

而为了方便使用,Rust提供了一些相关工具帮助开发者编写代码。如下所示:

  • Rustfmt 可以确保开发者遵循一致的代码风格。
  • Cargo 是内置的依赖管理器和构建工具,可以增加、编译和管理依赖,并使依赖在 Rust 生态中拥有相同的文件结构。
  • Rust Language Server 为集成开发环境(IDE)提供了强大的代码补全和内联错误信息功能。

Rustfmt

rustfmt是自动格式化工具,它会根据社区代码风格格式化代码,很多项目使用 rustfmt 来避免编写 Rust 风格的争论。

如果想在 Rust 项目中坚持标准风格,也需要使用rustfmt以特定的风格格式化你的代码。常见的几个格式约束如下所示

  • Rust 风格是缩进四个空格,而不是一个制表符;
  • println!调用一个 Rust 宏。如果它改为调用函数,则输入为println(不带!)
  • 大多数 Rust 代码行都以分号结尾。

安装:

rustup component add rustfmt

格式化命令:

cargo fmt

运行此命令会格式化当前 crate 中所有的 Rust 代码。这应该只会改变代码风格,而不是代码语义。

Cargo

Cargo 是 Rust 的构建系统和包管理器,可以用于构建代码、下载并编译依赖库。

相关命令

-- 查询版本
$ cargo --version
cargo 1.52.0 (69767412a 2021-04-21)

-- 构建
cargo build

--运行
cargo run

-- 快速检查代码,但并不产生可执行文件\
cargo check

-- 发布(release)构建
cargo build --release

release会在target/release 而不是 target/debug 下生成可执行文件。这些优化可以让 Rust 代码运行的更快,不过启用这些优化也需要消耗更长的编译时间。

创建项目

$ cargo new hello_
     Created binary (application) `hello_` package

目录结构:

  • .git:git 仓库
  • src
    • main.rs
  • Cargo.toml: 使用 TOML (Tom's Obvious, Minimal Language) 格式,这是 Cargo 的配置文件

Cargo.toml文件的默认内容:

[package]
name = "hello_"
version = "0.1.0"
authors = ["name <email>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
  • package 表示下面的语句用来配置包;
  • dependencies 罗列项目的依赖,当添加新依赖时需要添加到[dependencies]下。

编写并运行Rust 程序

项目会生成源文件名为 main.rs。Rust 源文件总是以 .rs 扩展名结尾。如果文件名包含多个单词,使用下划线分隔它们。例如命名为 hello_world.rs,而不是 helloworld.rs。

fn main() {
    println!("Hello, world!");
}
  • main 函数是一个特殊的函数:在可执行的 Rust 程序中,它总是最先运行的代码。函数体被包裹在花括号{}中。Rust 要求所有函数体都要用花括号包裹起来。
  • println! 调用了一个 Rust 宏。如果是调用函数,则应输入 println (无需! );
  • 该行以分号结尾( ; ),这代表一个表达式的结束和下一个表达式的开始。

保存文件,并回到终端窗口。在 Linux 或 macOS 上,输入如下命令,编译并运行文件:

$ rustc main.rs
$ ./main
Hello, world!

window:
> .\main.exe

Rust Language Server (RLS)

RLS 提供了一个在后台运行的服务器,为 IDE、编辑器和其他工具提供有关 Rust 程序的信息。

安装

-- 更新rustup
rustup update


rustup component add rls rust-analysis rust-src

为vscode安装vscode-rust检测RLS是否配置成功。

image.png

可以看到下图中已经存在语法提示 image.png

参考资料

hello cargo