首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Rust学习指南
一诺滚雪球
创建于2023-09-21
订阅专栏
记录下学习rust过程
等 40 人订阅
共69篇文章
创建于2023-09-21
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
66_宏
1. 概述 宏在rust里指的是一组相关特性的集合称谓,包括使用macro_rules!构建的声明宏(declarative macro),以及3种过程宏。如下: 自定义#[derive]宏,用于ru
65_高级函数和闭包
1. 函数指针 在rust中,闭包可以传递给函数,还可以将函数传递给其他函数。在传递的过程中会被强制转换成fn类型,fn类型就是“函数指针”(function pointer)。 如下示例代码: 2.
64_高级类型
1. 使用newtype模式实现类型安全和抽象 newtype模式有以下作用 用来静态的保证各种值之间不会混淆并表明值的单位 为类型的某些细节提供抽象能力 通过轻量级的封装来隐藏内部的实现细节 2.
63_高级trait
1. 在rust中使用关联类型来制定占位类型 关联类型(assciated type)是trait中类型占位符,它可以用于trait的方法签名中。具体地说可以定义出包含某些类型的trait,而在实现前
62_不安全rust
1. 概述 rust隐藏着第二个语言,它没有强制内存安全保证,这就是 unsafe rust(不安全的rust)。实际上和普通的rust一样,但提供了额外的“超能力”。Unsafe Rust存在的原因
61_模式匹配的语法
1. 匹配字面值 模式可以直接匹配字面值。 如下示例代码: 2. 匹配命名变量 命名的变量是可匹配任何值的无可辩驳模式。 如下示例代码: 3. 多重模式 在match表达式中,使用|语法(就是或的意思
60_模式匹配可辩驳性和基本语法
1. 概述 模式的两种形式包括:可辩驳的(可反驳的或可失败的)、无可辩驳的(不可反驳的或不可失败的)。 能够匹配任何可能传递的值的模式是无可辩驳的,即不能失败,怎么匹配都会成功。 例如let x =
59_模式匹配
1. 概述 模式匹配是rust的一种特殊语法,用于匹配复杂和简单类型的结构,将模式与匹配表达式和其他结构结合使用,可以更好地控制程序的控制流。 模式由以下元素(的一些组合)组成 字面值 解析的数组、e
58_实现面向对象的设计模式-状态模式
1. 状态模式 状态模式(state pattern)是一种面向对象的设计模式,一个值拥有的内部状态由数个状态对象(state object)表达而成,而值的行为则随着内部状态的改变而改变。 使用状态
57_使用trait对象来存储不同类型的值
1. 概述 假设我们有这样的需求:创建一个GUI工具,它会遍历某个元素(指的是GUI原属)的列表,依次调用元素的draw方法进行绘制。例如Button、TextField等元素。 对于以上的需求,在面
56_面向对象语言特性
1. rust是面向对象语言吗? Rust在设计的时候受到各种编程范式的影响,包括面向对象。 面向对象通常包含以下特性:命名对象、封装、继承。 我们所说的对象包含数据和行为,“设计模式四人帮”在《设计
55_使用Sync和Send来扩展并发
1. 概述 rust语言本身的并发特性较少,目前讲的并发特性都是来自标准库(而不是语言本身)。 其实我们无需仅限于标准库的并发,可以自己实现并发。 但在rust语言中有两个并发概念: std::mar
54_共享状态的并发
1. 概述 “不要用共享的内存来通信,要用通信来共享内存”。实际上,在上节中我们就是使用通信的方式来实现并发的,在本节我们要使用共享内存的方式来实现并发。 rust支持通过共享状态来实现并发。chan
53_使用Channel跨线程传递数据
1. 概述 消息传递是一种很流行且能保证安全并发的技术,在这种机制里线程(或Actor)通过彼此发送消息(数据)来进行通信。Go语言中有一句名言:“不要用共享内存来通信,要用通信来共享内存”,Go语言
52_多线程
1. 概述 1.1 并发 Concurrent(并发): 程序不同的部分之间独立执行 Parallel(并行): 程序不同部分同时运行 Rust允许我们编写没有细微Bug的代码,并在不引入新bug的情
51_循环引用导致内存泄漏
1. 内存泄漏的示例 rust的内存安全机制可以保证很难发生内存泄漏,但不是不可能。如使用Rc<T>和RefCell<T>就可能造成循环使用,从而发生内存泄漏。因为每项的引用数量不会变成0,值也不会被
50_RefCell<T>和内部可变性
1. 内部可变性 内部可变性是Rust的设计模式之一,它允许你在只持有不可变引用的前提下进行修改。数据结构中使用了unsafe代码绕过rust正常的可变性和借用规则。 2. RefCell 2.1 R
49_Rc<T>
## 1. 概述 `Rc<T>`是一个引用计数智能指针。 所有权在大多数情况下是比较清晰的,对于一个值,我们一般能准确判定哪个变量拥有它,但在某些场景中
48_Drop Trait
1. 概述 当一个数据类型实现Drop Trait之后,可以让我们自定义当值离开作用域时发生的动作。通常发生的动作包括:文件、网络资源的释放等。任何类型都可以实现Drop trait,Drop Tra
47_Deref Trait
1. 概述 如果一个类型实现了Deref Trait使我们可以自定义解引用*的行为。通过使用Deref,智能指针可以像常规引用一样来处理。 2. 解引用运算符 常规的引用也是一种指针,我们先看一个示例
下一页