
Rust
文章平均质量分 73
Rust入门学习
赛尔号副船长
凡事有交代,件件有着落,事事有回音。
展开
-
Rust多线程交叉打印+Send Sync特征讲解
详细讲解,值得你看原创 2024-05-09 15:52:24 · 1225 阅读 · 0 评论 -
Rust 各类智能指针、所有权转移和内存区域关系,值得你看!
发这篇博客的原因就是在学习`Rust`过程中,涉及到很多**栈、堆和所有权**的问题,导致我开始不清楚一些变量**到底**是分配**在栈上**还是**堆上**,还有从哪到哪,是否发生了内存区域的移动等等原创 2024-05-08 17:44:21 · 1626 阅读 · 0 评论 -
Rust 解决循环引用
从Rust中来,扩展Rust去原创 2024-05-07 17:34:51 · 678 阅读 · 0 评论 -
Rust Rc和RefCell,看这一篇就够了~
实战讲解,扩展书本内容原创 2024-05-06 23:14:07 · 1887 阅读 · 2 评论 -
Rust 实战thiserror+自定义错误消息体
Rust thiserror实战原创 2024-05-05 21:37:39 · 898 阅读 · 0 评论 -
Rust web简单实战
Rust web开发原创 2024-05-04 22:10:40 · 1018 阅读 · 0 评论 -
Rust Future调度器原理,看这一篇就够了
这篇文章主要是讨论Rust异步编程底层调度的原理。原创 2024-05-04 14:25:48 · 1546 阅读 · 0 评论 -
Rust async,看这一篇就够了~
实战详细解释Rust Async,值得你看!原创 2024-05-03 20:48:02 · 2550 阅读 · 1 评论 -
Rust move
Rust 闭包中move的使用原创 2024-05-02 21:29:09 · 808 阅读 · 0 评论 -
Rust lib.rs 有什么用,看这一篇就够了
那每一个模块和模块条目,能否被别的模块使用,我们就**需要在lib.rs**文件中进行**定义引入**,这样**才,才,才可以**使用引用的模块(文件)和模块条目(函数)原创 2024-05-01 14:43:14 · 3008 阅读 · 0 评论 -
Rust生命周期,看这一篇就够了~
生命周期的**主要作用**是**避免悬垂引用**,它会导致程序引用了本不该引用的数据原创 2024-04-29 22:01:05 · 3117 阅读 · 0 评论 -
Rust HashMap
HashMap 也是 Rust 标准库中提供的集合类型,但是又与动态数组不同,HashMap 中存储的是一一映射的,并提供了平均时间复杂度为。原创 2024-04-29 14:10:41 · 841 阅读 · 0 评论 -
Rust 动态数组Vector
哪怕只是拿了某个元素的可变引用,也不能再获得Vector整体的不可变引用。表示,可以看成java的集合吧,和Golang的切片还是有点区别。v.get(2) 也是访问第三个元素,但是有所不同的是,它返回了。从安全性出发,get更安全,get在内部做了处理,,因此 v.get 的使用方式非常安全。,如果不想自己写,可以使用派生的比较特征。其实如果你想放不同类型的数据,可以考虑。如果是特征对象,得保证不同类型都。动态数组允许你存储多个值,分为下标访问和get访问。,访问效率高,但是只能。原创 2024-04-28 22:29:13 · 1040 阅读 · 1 评论 -
Rust特征对象
特征对象指向实现了 某种特征的类型的实例,这种映射关系是存储在一张表中,可以在运行时通过特征对象找到具体调用的类型方法可以通过或者的方式来。这个说法太抽象了,我们来看一点例子。原创 2024-04-28 15:43:39 · 1334 阅读 · 0 评论 -
Rust特征
pub trait Summary {//Summary 是特征名称//和接口类似,不需要具体实现方法体带有默认实现的特征定义这样使得实现了该特征的类型,自动具备了默认的特征行为,当然也可以覆盖重写优先调用覆盖重写的特征行为。原创 2024-04-28 14:32:57 · 678 阅读 · 0 评论 -
Rust 模式匹配中的& 和 ref
按照正常思路的话(假设),按道理应该是两个可变引用,是违背借用原则的,会不会是match{}框住了value的作用域导致,其实只有一个可变引用?除了使用&引用借用来避免交出所有权的问题,在模式匹配中,我们可以使用**&或ref**来避免交出所有权,ref不遵循借用的那一套规则,在match的模式匹配中,ref也可以是不拿所有权的一种引用方法。匹配变量,也就是value,那么**&mut 是肯定不能用**的,其实第一版修改,我们可以改成。这里说了,&mut v的所有权被value拿走了。其实这里你可能会问,原创 2024-04-22 23:04:20 · 1601 阅读 · 0 评论 -
Rust基本数据类型-字符串
先说明一下,在Rust中,字符是UniCode编码占4个字节,字符串类型的字符是UTF-8编码的,字节大小为1~3。这样会报错,因为字符串编码是可变长编码,通过简单的下标,很难界定你输入的下标是否正确切割了字符。来获取,但是我们的下标要注意,要整好取得字符字节大小的整数。在Rust中,可以分为&Str和String类型。由于字符串追加操作要修改原来的字符串,则该。的 UTF-8 编码字符串。的,即字符串变量必须由。类型是不可修改的字符串。在字符串尾部可以使用。原创 2024-04-21 17:37:04 · 1234 阅读 · 0 评论 -
Rust基本数据类型-切片
则可以正常通过编译。因此,当你需要对字符串做切片索引操作时,需要格外小心这一点。但是需要注意的是,切片取索引下标的时候,要将。如何正确便利这种UTF-8字符串,给几个方法。,因此没有落在边界处,也就是连 中 字都。切片并不是 Rust 独有的概念,在。,此时程序会直接崩溃退出,如果改成。,它看起来像这样,记得是。就非常流行,它允许你。原创 2024-04-21 16:27:23 · 470 阅读 · 0 评论 -
Rust入门-引用借用
的地方,这个跟变量的作用域有所不同,变量的作用域从创建持续到某一个花括号 }给大家一段代码看看,Rust真好玩(手动狗头)原创 2024-04-19 15:47:36 · 761 阅读 · 0 评论 -
Rust入门-所有权
这里可以给出一个通用的规则: 任何基本类型的组合可以 Copy ,不需要分配内存或某种形式资源的类型是可以 Copy 的。可以理解成,所有权移交之后,就可以大胆放心的抛弃先前的拥有者。,栈和堆的结构特性决定了一些值适合放在哪些位置,能够有更好的性能和空间效率。,不会把旧值的所有权给新变量(新拥有者),没有发生所有权变化的现象。的,因为你需要复制一份数据,万一你这个数据非常大,复制起来非常耗时耗资源。,该结构体就是字符串结构,保存了堆中数据的地址、长度、容量等数据。,即在堆中生成一份相同的数据,赋给新变量。原创 2024-04-18 23:36:25 · 1297 阅读 · 0 评论 -
Rust 入门-更换镜像源(MAC)
cargo debug模式,为了提高开发速度,编译会非常快,但是相对里说运行速度比较慢。首先,创建一个新的镜像源 [source.ustc],然后将默认的 crates-io 替换成新的镜像源: replace-with = ‘ustc’。只要这样配置后,以往需要去 crates.io 下载的包,会全部从科大的镜像地址下载,速度刷刷的…当项目大了后,cargo run 和 cargo build 不可避免的会变慢,那么有没有更快的方式来验证代码的正确性呢?因此该命令速度会非常快,能。原创 2024-04-16 20:47:31 · 1359 阅读 · 0 评论 -
Rust入门-Hello World
创建一个新项目,cargo是Rust的包管理工具。看到Hello world!千里之行,始于足下,加油!上安装 rustup。原创 2024-04-16 20:20:40 · 1076 阅读 · 0 评论