LingKang的Rust学习日记之基础(keep refreshing)

1. prelude概念 

Rust 的 "prelude" 是指在每个 Rust 源文件中自动导入的一组常用的标准库模块和类型。它提供了一些常用的功能和类型,以便在编写代码时更加方便和简洁。

Rust 的 prelude 由以下模块组成:

  • std::prelude::v1:这是 Rust 标准库的主要 prelude 模块。它包含了一些常用的类型和 traits,例如 Option、Result、Vec、String,以及常见的 trait 如 Clone、Copy、Debug 等。通过导入 use std::prelude::v1::*,你可以在代码中直接使用这些类型和 traits,而无需显式导入它们。

  • std::prelude::rust_2018:这是在 Rust 2018 Edition 中引入的 prelude 模块。它与 std::prelude::v1 类似,但仅包含了一些最常用的类型和 traits。在 Rust 2018 Edition 中,默认情况下,只有 std::prelude::rust_2018 被导入,而 std::prelude::v1 需要显式导入。

prelude 的设计目的是为了提供一些常用的功能和类型的快捷方式,以减少开发者的重复劳动和代码冗余。然而,它并不是强制性的,你可以根据需要选择性地导入需要的模块和类型。

需要注意的是,Rust 的 prelude 只包含了一些基本的标准库类型和 traits,并不包括所有可能需要的功能。对于更特定的需求,你可能需要显式导入其他模块或使用外部库。

2. crates.io

crates.io 是 Rust 编程语言的官方包管理器(Package Manager)和包仓库(Package Registry)的网站。它是 Rust 社区中最主要和最常用的资源之一。

一些常用轮子可以在crates上搜索,需要自己甄别

Cargo 是 Rust 的官方构建系统和包管理器,它用于帮助开发者构建、测试和发布 Rust 项目。以下是 Cargo 的基本使用和解析:

1. 创建新项目:使用 cargo new 命令可以创建一个新的 Rust 项目。例如,运行 cargo new my_project 将在当前目录下创建一个名为 my_project 的新项目。

2. 构建项目:使用 cargo build 命令可以构建项目。这将编译项目的源代码,并生成可执行文件或库文件。可执行文件将位于 target/debug 目录下,库文件将位于 target/debug 或 target/release 目录下,具体取决于你是在调试模式还是发布模式下构建项目。

3. 运行项目:使用 cargo run 命令可以编译并运行项目。Cargo 将自动构建项目,然后执行生成的可执行文件。

4. 测试项目:使用 cargo test 命令可以运行项目中的测试。Cargo 将编译项目,并运行项目中的测试函数,输出测试结果。

5. 更新依赖:使用 cargo update 命令可以更新项目的依赖。Cargo 将检查 Cargo.toml 文件中指定的依赖项,并下载最新版本的依赖。

6. 发布项目:使用 cargo publish 命令可以将项目发布到 crates.io,以供他人使用。在发布之前,你需要在 crates.io 上创建一个账号,并在 Cargo.toml 文件中配置项目的元数据。

7. 解析依赖:Cargo 使用 Cargo.toml 文件来管理项目的依赖。在这个文件中,你可以指定项目的名称、版本、依赖项等信息。Cargo 会根据 Cargo.toml 文件中的依赖描述,自动下载和管理项目的依赖关系。依赖项的版本可以使用语义化版本号(Semantic Versioning)来指定,以确保向后兼容性。

这只是 Cargo 的基本使用和解析,Cargo 还有许多其他功能,例如构建脚本、自定义构建选项、文档生成等。你可以通过运行 cargo --help 命令或查阅官方文档来了解更多关于 Cargo 的详细信息。

3. cargo.lock使用场景

你首次构建一个项目的时候,Cargo会输出一个Cargo.lock文件,里面记录了每个库使用的精确的版本。之后构建的时候会直接读取该文件并使用里面的版本。
Cargo只有在你希望它更新的时候才会更新新版本,手动修改Cargo.toml里的版本成新的版本号或者运行cargo update。
cargo update命令仅仅更新最新的兼容版本,如果你想跨不兼容的版本更新,需要手动修改Cargo.toml,下次构建的时候,Cargo会更新版本和Cargo.lock文件。
指定的版本为git仓库的场景,cargo build命令在有Cargo.lock文件的时候不会再拉仓库的最新代码,它会用Cargo.lock里面记录的版本,但是cargo update会拉最新的代码
cargo.lock文件是自动生成的,你不应该手动修改它。假如你的项目是一个可执行文件,你应该把cargo.lock文件提交到代码库,这样,其他人下载构建的时候会使用相同的版本,确保构建后的二进制相同。Cargo.lock文件的修改历史记录了依赖的更新。
假如你的工程是一个普通的库,你不应该把Cargo.lock提交到代码库。你的库的使用者有自己的Cargo.lock文件,它们会忽略你库里的Cargo.lock文件。
假如你的工程是个动态库工程,不会有使用者用到你的源代码,这时也应该提交Cargo.lock文件到代码库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值