首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Rust学习指南
一诺滚雪球
创建于2023-09-21
订阅专栏
记录下学习rust过程
等 40 人订阅
共69篇文章
创建于2023-09-21
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
46_使用Box来指向Heap上的数据
1. 概述 Box<T>是一种最简单的智能指针,它实现了Deref trait和Drop trait。它允许你在heap上存储数据(而不是stack),Box在stack上有一个指针,指向heap上的
45_智能指针
1. 概述 指针:一个变量在内存中包含的是一个地址(指向其他数据),该变量就是一个指针。 在Rust中最常见的指针就是“引用”。 引用: 使用&标注 借用它指向的值 而且没有其余的开销 最常见的指针类
44_安装二进制crate
1. 概述 使用cargo install来安装二进制crate 安装来源来自https://crates.io 只能安装具有二进制目标(binary target)的crate 二进制目标binar
43_cargo工作空间
1. 工作空间(workspaces)概述 cargo工作空间:帮助管理多个相互关联且需要协同开发的crate cargo工作空间是一套共享同一个Cargo.lock和输出文件夹的包 类似于monor
42_发布crate
1. 创建账号 发布crate.io前,需要在<crates.io>创建账号并获得API Token 运行命令cargo login $API_TOKEN, 将会通知cargo,把你的API toke
41_cargo发布前准备
前言 学习如何发布包,会分成几篇介绍, 本篇主要讲第一个通过release profile来自定义构建,内容有构建、文档注释、pubuse。 1. 通过release profile来自定义构建 re
使用迭代器优化minigrep项目
前言 学习了迭代器,我们现在来优化minigrep项目。 1. 使用迭代器优化Config结构体new方法 回顾之前的一个代码片段,在Config的new函数中包含如下代码 因为query、filen
40_迭代器
1. 什么是迭代器? 迭代器模式是对一系列项执行某些任务。在这个过程中迭代器负责 遍历每个项目, 确定序列(遍历)何时完成。 Rust里的迭代器 是惰性的,除非调用消费迭代器的方法,否则迭代器本身没有
39_闭包
1. 什么是闭包 1.1 闭包的特性 闭包:可以捕获其所在环境的匿名函数。闭包具体以下特性 闭包是个匿名函数 可以保存为变量,或者作为参数传给另外一个函数,或者作为另外一个的返回值 可以在某个地方创建
rust实现命令行minigrep功能
前言 内容: 接收命令行参数 读取文件 重构:改进模块和错误处理 使用TDD(测试驱动开发)开发库功能 使用环境变量 将错误消息写入标准错误而不是标准输出 1. 接收命令行参数 使用标准库中的env:
38_测试的组织
1. 测试的分类 Rust对测试的分类: 1.1 单元测试 测试范围比较小,同时比较专注;一次对一个模块进行隔离的测试;可以测试private接口。 1.2 集成测试 完全位于代码库之外,和其他外部代
37_控制测试运行
1. 概述 cargo test和cargo run命令类型,cargo test会在测试模式下编译代码,并生成一个二进制可执行文件,该二进制可执行文件用于测试。我们可以通过添加参数来改变cargo
36_编写测试
1. 什么是测试 在rust里,一个测试就是一个函数,他被用于测试其他的非测试代码的功能是否和预期一致。所以在测试的函数体里,通常会执行3个操作,如下 准备数据/状态 运行被测试的代码 断言(Asse
35_生命周期
1. 什么是生命周期? Rust的每个引用都有生命周期,生命周期是可以理解是引用保持有效的作用域。大多数情况下,生命周期是隐式的、可被推断的。当引用的生命周期可能以不同的方式相互关联的时候,必须手动标
34_trait
1. 概述 Trait告诉Rust编译器,某种类型具有哪些并且可以与其他类型共享的功能,可以使用抽象的方式定义共享行为。Trait bounds(约束)指的是泛型类型参数指定实现了特定行为的类型。 T
33_泛型数据类型
1. 概述 泛型是具体类型或其他属性的抽象代替。能提高代码复用的能力,用于处理重复代码的问题。我们可以理解为,我们编写的代码不是最终代码,而是一种模板,里面有一些“占位符”。编译器在编译的时会讲“占位
32_何时使用panic
1. 总体原则 在rust里错误主要分为两类,一类是可恢复的,另一类是不可恢复的,通过调用panic!宏代表该错误不可恢复。通过返回Result则相当于错误进行了传播,而这类错误是可恢复的。 当我们自
31_result枚举与可恢复错误-下
1. 错误传播 我们除了在函数出处处理错误;还可以将错误返回给函数的调用者,让调用者进一步进一步处理错误,这个过程就叫做错误传播。如下示例代码 2. ?运算符 2.1 ?运算符的使用 ?运算符是传播错
30_result枚举与可恢复错误-上
1. 概述 通常情况下,错误都没有严重到要停止整个应用的地步。当某个函数运行失败,一般都有一些可以简单解释并做出可以做响应的原因所引起的,比如说我们程序想打开某个文件,但这个文件却不存在,这个时候通常
29_不可恢复错误与panic
1. 概述 Rust的可靠性:错误处理,在大部分情况下,编译时提示错误,并处理。 Rust错误的分类如下: 可恢复:例如文件未找到,可在此尝试 不可恢复:bug的另外所说法,通常是逻辑错误,比如访问的
下一页