问候并欢迎来到 Rustlings。该项目包含一些小练习,可帮助您习惯阅读和编写 Rust 代码。这包括阅读和响应编译器消息!
建议在阅读 Rust 官方书籍的同时进行 Rustlings 练习,这是学习 Rust 最全面的资源️
Rust By Example 是另一个可能对您有帮助的推荐资源。它包含与 Rustlings 类似的代码示例和练习,但是是在线的。
在安装 Rustlings 之前,您需要安装最新版本的 Rust 。请访问 www.rust-lang.org/tools/install 了解有关安装 Rust 的更多说明。这还将安装Cargo ,Rust 的包/项目管理器。
?如果您使用的是 Linux,请确保您已安装
gcc
(用于链接器)。德布:
sudo apt install gcc
。 dnf:sudo dnf install gcc
。
?如果您使用的是 MacOS,请确保您已通过运行
xcode-select --install
安装了 Xcode 及其开发人员工具。
以下命令将下载并编译 Rustlings:
cargo install rustlings
rustup update
确保您拥有最新的 Rust 版本--locked
标志: cargo install rustlings --locked
安装 Rustlings 后,运行以下命令来初始化rustlings/
目录:
rustlings init
rustlings
…… (点击展开)您可能使用 Linux 并使用包管理器安装 Rust。
Cargo 将二进制文件安装到目录~/.cargo/bin
。遗憾的是,包管理器通常不会将~/.cargo/bin
添加到您的PATH
环境变量中。
解决办法是……
~/.cargo/bin
添加到PATH
rustup
的官方方式安装它:https://www.rust-lang.org/tools/install现在,进入新初始化的目录并启动 Rustlings 以获取有关开始练习的进一步说明:
cd rustlings/
rustlings
我们一般推荐使用带有 rust-analyzer 插件的 VS Code。但是任何支持 rust-analyzer 的编辑器都应该足以完成练习。
使用 Rustlings 时,请使用现代终端以获得最佳用户体验。 Linux 和 Mac 上的默认终端应该足够了。在 Windows 上,我们推荐使用 Windows 终端。
练习按主题排序,可以在子目录exercises/<topic>
中找到。对于每个主题,都有一个附加的README.md
文件,其中包含一些资源,可帮助您开始了解该主题。我们强烈建议您在开始之前先看看它们️
大多数练习都包含一个错误,导致它们无法编译,您需要修复它!有些练习包含需要通过才能完成的测试 ✅
搜索TODO
和todo!()
以找出您需要更改的内容。在手表模式下输入h
寻求提示
初始化后,只需运行命令rustlings
即可启动 Rustlings。
这将启动观看模式,该模式将引导您按照预定义的顺序完成练习(我们认为这对新手来说是最好的)。每次您更改exercises/
目录中的练习文件时,它都会自动重新运行当前练习。
exercises/
目录中的文件更改失败... (点击展开)您可以添加
--manual-run
标志 (rustlings --manual-run
),通过在监视模式下输入r
来手动重新运行当前练习。请报告该问题,并提供有关您的操作系统以及您是否在容器或虚拟机(例如 WSL)中运行 Rustlings 的一些信息。
在观看模式下(启动rustlings
后),您可以输入l
打开交互式锻炼列表。
该列表允许您...
c
:继续另一项练习(暂时跳过一些练习或返回上一个练习)r
:重置所选练习的状态和文件(之后您需要在编辑器中重新加载/重新打开其文件)有关所有可能的键,请参阅列表的页脚。
如果您在做练习时需要任何帮助,并且内置提示没有帮助,如果您的问题尚未提出,请随时在讨论的问答类别中提问
第三方练习是由社区维护的一组练习。您可以使用与cargo install rustlings
一起安装的相同rustlings
程序来运行它们:
您想创建自己的 Rustlings 练习集来专注于某个特定主题吗?或者你想翻译原来的 Rustlings 练习吗?然后按照有关第三方练习的指南进行操作!
完成 Rustlings 后,充分利用您的新知识!通过构建自己的项目、为 Rustlings 做出贡献或寻找其他开源项目来贡献,继续练习您的 Rust 技能。
如果您想从系统中删除 Rustlings,请运行以下命令:
cargo uninstall rustlings
参见 CONTRIBUTING.md 吗?
感谢所有出色的贡献者?