IT袋

当前位置:主页 > 经验教程 > 建站编程 >

以调试Rust的方式来学习Rust

以调试Rust的方式来学习Rust(2)

时间:2023-09-23 19:23:12 来源:IT袋 作者:苏晓敏
导读:以调试Rust的方式来学习Rust,从命令行列出所有练习 命令 ruslings 提供给你一个 list 命令用以展示每个示例程序,它的完整路径,以及状态 (默认为 “待定”)。 $ rustlings listName Pat

以调试Rust的方式来学习Rust

从命令行列出所有练习

命令ruslings提供给你一个list命令用以展示每个示例程序,它的完整路径,以及状态 (默认为 “待定”)。

$ rustlings list
Name         Path                                 Status
intro1       exercises/intro/intro1.rs           &nbspending intro2 exercises/intro/intro2.rs &nbspending variables1 exercises/variables/variables1.rs &nbspending variables2 exercises/variables/variables2.rs &nbspending variables3 exercises/variables/variables3.rs &nbspending [...]

在显示结尾处,你会有一个进度报告用来追踪进度。

Progress: You completed 0 / 84 exercises (0.00 %).

查看示例程序

命令rustlings list向你展示了现有的程序,所以你可以在任何时候查看这些程序的代码,你只需要将完整路径复制到你的终端作为命令cat或者less的参数:

$ cat exercises/intro/intro1.rs

验证你的程序

现在你可以开始调试程序了。你可以使用命令verify来做这件事。注意 Rustlings 选择了列表里的第一个程序(intro1.rs)并尝试去编译它,最后编译成功:

$ rustlings verify
Progress: [-----------------------------------] 0/84
✅ Successfully ran exercises/intro/intro1.rs!
You can keep working on this exercise,
or jump into the next one by removing the `I AM NOT DONE` comment:
 6 |  // Execute the command `rustlings hint intro1` for a hint.
 7 |  
 8 |  // I AM NOT DONE
 9 |

正如你从结果中所见,尽管示例代码成功编译了,你依然需要做一些工作。每个示例程序的源文件中都带有以下注释:

$ grep "NOT DONE" exercises/intro/intro1.rs
// I AM NOT DONE

虽然第一个程序的编译没有问题,除非你去掉注释I AM NOT DONE,Rustlings 不会移到下一个程序。

来到下一个练习

一旦你从intro1.rs中去掉这些注释,你就可以通过再一次运行命令rustlings verify来到下一个练习。这一次,你会发现 Rustlings 尝试去编译这个系列中的下一个程序(intro2.rs),但是遇到了一个错误。你应该调试并修复这个问题,并前进。这是你理解为什么 Rust 说程序有漏洞的至关重要的一步。

$ rustlings verify
Progress: [>------------------------] 1/84
⚠️  Compiling of exercises/intro/intro2.rs failed! Please try again. Here's the output:
error: 1 positional argument in format string, but no arguments were given
 --> exercises/intro/intro2.rs:8:21
  |
8 |         println!("Hello {}!");
  |                         ^^
error: aborting due to previous error

来点提示

Rustlings 有一个非常好用的hint参数,这个参数会告诉你示例程序中哪里出错了,以及如何去修复它。你可以认为这是在编译错误信息基础之上,一个额外的帮助选项。

相关阅读

  • 前端开发面试题精选及答案解析 前端开发面试题精选及答案详解

    前端开发面试题精选及答案解析 前端开发面试题精选及答案详解

    全面为您解析前端开发面试题精选及答案解析方面的内容,一定能解决您的问题的,一起来了解吧! 前端开发是一项复杂的工作,涵盖了从HTML、CSS、JavaScript到框架(如React、Vue等)的广泛知识

  • 网络存储类型、其优缺点以及使用场景有哪些

    网络存储类型、其优缺点以及使用场景有哪些

    为关注IT袋网网的网友们详解网络存储类型、其优缺点以及使用场景有哪些方面的介绍,如有不对的地方欢迎指正! 1. 简介 网络存储是一种通过网络连接的方式,将数据存储在独立的存储设备

  • 域名ip查询工具 域名解析ip在线查询

    域名ip查询工具 域名解析ip在线查询

    您可能不了解域名ip查询工具和域名解析ip在线查询的教程内容,具体介绍如下: IP域名解析查询是指通过域名查询服务器将域名转换为IP地址的过程。在互联网中,每个设备都有一个唯一的I

  • 怎么注册网站个人 免费注册网站的流程

    怎么注册网站个人 免费注册网站的流程

    您可能不了解怎么注册网站个人和免费注册网站的流程的相关经验,下面IT袋为您详细介绍 可以按照以下步骤来搭建自己的网站并供他人访问: 1.获取域名和托管服务: 首先,你需要注册一