快速配置 Rust 开发环境并编写一个小应用

Rust
225
0
0
2024-01-12

安装:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

更新:

Rust 的升级非常频繁. 如果安装 Rustup 后已有一段时间,那么很可能 Rust 版本已经过时, 运行 rustup update 获取最新版本的 Rust

rustc:编译Rust程序

rustc只适合简单的Rust程序,较大型的项目还是推荐使用Cargo

Cargo:Rust 的构建工具和包管理器

在安装 Rustup 时, 也会安装 Rust 构建工具和包管理器的最新稳定版,即 Cargo.

Cargo 可以做很多事情:

  • cargo build 可以构建项目
  • cargo run 可以运行项目
  • cargo test 可以测试项目
  • cargo doc 可以为项目构建文档
  • cargo publish 可以将库发布到 crates.io

要检查否安装了 Rust 和 Cargo, 可在终端中运行:

cargo --version

cargo run

cargo check

cargo build --release

cargo install

在Mac上,Cargo可以像brew一样,安装很多Rust写的工具,如安装一款可能比Tmux还要好用的终端工具zellij[1]:

cargo install zellij

为编辑器安装Rust插件:

创建新项目:

cargo new hello-rust

这会生成一个名为 hello-rust 的新目录, 其中包含以下文件:

其中, Cargo.toml 为 Rust 的清单文件, 包含了项目的元数据和依赖库

src/main.rs 为编写应用代码的地方

进入项目中,执行 cargo run

添加依赖:

在 Rust 中, 通常把包称作 crates

可以在 crates.io[2], 即 Rust 包的仓库中找到所有类别的库

(包和库,可以认为是一回事)

此处使用名为 ferris-says 的库.

在 Cargo.toml 文件中添加以下信息:

(从 crate 页面上获取)

[dependencies]
ferris-says = "0.2"

(点击这个小图标,就会跳到这个包的官方地址[3])

然后运行:

cargo build

Cargo 就会安装该依赖.

(运行此命令会创建一个新文件 Cargo.lock, 该文件记录了本地所用依赖库的精确版本. 类似于yarn.lock)

编写应用:

在 main.rs 中:

use std::io::{BufWriter, stdout};
use ferris_says::say;

fn main() {
    let stdout = stdout();
    let message = String::from("Hello fellow Rustaceans! --- by shuang");
    let width = message.chars().count();


    let mut writer = BufWriter::new(stdout.lock());
    say(message.as_bytes(), width, &mut writer).unwrap();
}

执行 cargo run:

了解更多:

Ferris[4] 是 Rust 社区的 非官方吉祥物.

很多 Rust 程序员自称 Rustaceans, 它与crustacean(甲壳纲动物) 相似

建议用“they”、“them”等代词, 而不用带性别的代词来指代 Ferris

Ferris 与形容词 ferrous(adj. [化学] 亚铁的;铁的,含铁的) 相似, 其的含义与铁有关.

由于 Rust(锈)通常由铁形成, 因此算得上是这个吉祥物名字的有趣来源

参考:

入门:快速配置 Rust 开发环境并编写一个小应用![5]

连微软也在力推:

Take your first steps with Rust[6]

参考资料

[1]zellij: https://github.com/zellij-org/zellij

[2]crates.io: https://crates.io/

[3]官方地址: https://docs.rs/ferris-says/0.2.0/ferris_says/

[4]Ferris: https://rustacean.net/

[5]入门:快速配置 Rust 开发环境并编写一个小应用!: https://www.rust-lang.org/zh-CN/learn/get-started

[6]Take your first steps with Rust: https://docs.microsoft.com/en-us/learn/paths/rust-first-steps/