Rust
1 人感兴趣 · 28 次引用
- 最新
- 推荐
我为什么要使用 Tauri 构建 macOS 磁盘清理工具 PrettyClean
我为什么要使用 Tauri 构建 macOS 磁盘清理工具 PrettyClean? 为什么 Rust 是最好的选择? 我使用了哪些 Tauri 特点构建 PrettyClean
Rust 异步初探
Rust于2018年引入异步,四年后的今天,我第一次接触Rust且使用async/await实现了一个小的IM(即时通讯)系统,带着原本对于Rust的好奇和对于异步的疑惑,翻阅了一些文章和参考,最后得到了一些答案。
使用 Rust 开发后端——Actix-Web
actix-web使用一个HttpServer+多个App来完成功能,而且是一个线程一个App,也就是一个后端服务可能存在多个App实例。同时因为路由之后的处理都是在App里进行的,所以不同的App之间的同名handler可能是不相通的,这就涉及到数据共享(其实就是多线程数据共享问
每日一 R「23」回顾基本概念
类型系统是对值的区分,包含了值在内存中的长度、对齐方式以及值允许的操作方式等。指针是一个持有内存地址的值,引用与指针非常类似,可以看作是受限访问的指针。
每日一 R「22」内存:堆与栈
栈是程序运行的基础。在计算机内存中,栈是自顶向下(高地址向低地址)扩张的,堆是自底向上扩张的。当需要动态大小的内存时,只能使用堆,例如可变长度的数组、列表、哈希表、字典等。
每日一 R「21」Unsafe Rust
到目前为止,我们学习的所有内容都是在 Rust 严格的安全性要求之下的。那 Rust 中有没有一些特殊的场景,需要我们破坏或者说暂时不遵循其严格的安全性要求?当然,那就是 unsafe Rust,我们今天学习的主题。
每日一 R「20」网络编程(二)
今天我们接着昨天的主题来学习一下 Rust 中的网络编程。上节中我们学习了使用 std::net 构建一般网络程序的方法。今天我们将主要学习下网络应用开发中的问题以及常见的网络通讯模型。
每日一 R「19」网络编程(一)
今天的学习主题是,在 Rust 中如何进行网络开发。主要学习目标是学习如何使用 Rust 标准库及生态系统中的第三方库来进行网络开发,包括创建网络连接、处理网络数据等。让我们开始吧。
每日一 R「18」类型系统进阶(二)
今天的课程主题是实战中的 trait object 使用方法。在运行时,我们只关注类型表现出某个 trait 的行为,而不关心其具体类型时就可以使用 trait object,用法时 &dyn T 或 Box<dyn T>。Trait object 是一个固定大小的胖指针,同时指向具体类型值和 vtable。
每日一 R「17」类型系统进阶(一)
到目前为止,我们已经学习了 Rust 中大部分基础支持,而且在实践课中我们也跟着老师一起构建了一个 kv server 系统。从某种程度上讲,我们也算是一个入门的 Rustaceans 了。从今天开始,我们开始跟着老师学习进阶知识了。
每日一 R「15」实践课之 kv-server(一)
今天是实践课程,我们一起跟着老师来构建一个 KV server。在此之前,我们先来学习下 Rust 中一个 package 典型的目录结构。
每日一 R「14」错误处理
今天我们来学习基础课程中的最后一节,异常处理。在任何一门编程语言当中,异常或错误处理都是非常重要的内容,它用来处理异常流程。处理正常流程的 if / while 等,与异常流程一同组成了程序控制流程。
每日一 R「13」数据结构(四)闭包
今天我们来学习数据结构系列中的最后一讲内容,闭包。闭包是函数编程语言中非常重要的一个工具,它可以作为参数传递给函数,也可作为返回值被函数返回。Rust 中的闭包与其他编程语言中的闭包都有所不同。接下来,我们将跟着老师一起,慢慢解开闭包的神秘面纱
每日一 R「12」数据结构(三)哈希表
在上节课程中,我们学习了 Rust 中的切片,今天我们将一块学习下哈希表。哈希表在任何一门开发语言中都是非常重要的容器数据结构,甚至很多语言都将哈希表作为一种内置的数据结构,例如 Java。
每日一 R「11」数据结构(二)切片
今天要学习的数据结构是集合容器。像其他语言一样,容器例如数组、列表,是非常重要的数据结构。其实,只要是把某些特定的数据封装在某个数据结构中,这个数据结构就能称为容器。例如 Option<T> 封装了存在(Some)或不存在(None)的容器。
每日一 R「10」数据结构(一)智能指针
在前面学习所有权时,我们学习了几个常用的智能指针,包括 Rc、Box、RefCell 等。智能指针是 Rust 中最容易令人感到困惑的一种数据结构。今天我们将跟着大佬一块再深入学习这块内容。
每日一 R「09」类型系统(三)
合理地定义和使用 trait,会让代码结构具有很好的扩展性,让系统变得非常灵活。今天我们将学习几个常用的 trait。
每日一 R「08」类型系统(二)
今天我们将继续学习多态的另外两种方式:特设多态和子类型多态。首先来简单回顾一下:特设多态指同一种行为有很多不同的实现,例如面向对象语言中的方法重载;子类型多态是指子类型可以当作父类型使用,例如面向对象语言中的里氏替换原则。
每日一 R「07」类型系统(一)
在前面的课程中,我们学习了变量所有权、借用以及生命周期等 Rust 中非常重要且比较难懂的内容。今天我们将开始跟着老师一起学习 Rust 中的类型系统。
每日一 R「06」内存管理
在前面的课程中,我们学习了 Rust 的所有权、生命周期等比较重要的概念。今天,我们将跟着陈天老师一起学习内存管理,即数据在内存中如何创建、如何存放以及如何销毁。
每日一 R「05」生命周期
Rust 中的值或其引用,根据其作用域的大小,可以划分为两类:静态生命周期,其贯穿整个进程的生命周期;动态生命周期,即定义在某个作用域的生命周期。今天我们来跟着陈天老师学习一下。
每日一 R「04」常用的智能指针
除了引用外,指针类型还有其他的成员,例如引用计数 Rc。它们与引用相比,具有更复杂的数据结构,例如元数据(当前长度、最大可用长度等)。而且,引用并不具备值的所有权,而智能指针可以拥有它们指向的数据。
每日一 R「03」Borrow 语义与引用
所有权原则为 Rust 带来了非常多的好处,例如不需要设计 GC。但是,所有权转移也使得开发者在赋值、函数调用和返回时必须谨慎地处理值的所有权问题,否则将会导致失去所有权而无法访问原来的值。
每日一 R「02」所有权与 Move 语义
今天我们要学习的概念是变量的所有权。对 Rust 有点了解的同学可能知道,所有权是 Rust 有别于其他语言的一个关键特性,也是 Rust 初学者吐槽最多和最容易混淆的特性之一。今天我们将跟着陈天老师来学习下所有权原则。
️前端研发的新基础设施 - Rust ️🦀️
Rust 连续7年成为最受开发者喜欢的语言,在相关领域有了更多的应用,让我们先看看Rust在相关领域的应用,再来关注为什么大家都不约而同地选择了Rust。