介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容在上一节,我们基本确定了链表的布局方式,下面我们就来实现链表的响应的函数。对于链表来说,最基本的几个函数就是:New //new函数为创建链表的函数 Push//添加元素的函数 Po ......
188
0
0
2022-04-30
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...Rust中最常见的链表用函数式的语法定义一个链表如下:List a = Empty | Elem a (List a) 一个链表要么是空的类型,要么是一个值后面跟着一个链表,这种被称为递归定 ......
186
0
0
2022-04-30
介绍本系列录制的视频主要放在B站上Rust死灵书学习视频Rust 死灵书相关的源码资料在github.com/anonymousGiga/Rustonomi...详细内容本节主要对之前实现的MyVec进行测试,代码如下:#![feature(ptr_internals)] use std::mem; use std::alloc::{alloc, rea ......
204
0
0
2022-04-30
介绍本系列录制的视频主要放在B站上Rust死灵书学习视频Rust 死灵书相关的源码资料在github.com/anonymousGiga/Rustonomi...详细内容在我们之前的MyVec的实现中,一直没有考虑零尺寸类型,本节我们来完善。在处理零尺寸类型时,我们需要注意以下几点:当分配器API传递分配尺寸为0时,会导致未定义行为;对零尺寸类型的裸指针做o ......
220
0
0
2022-04-29
介绍本系列录制的视频主要放在B站上Rust死灵书学习视频Rust 死灵书相关的源码资料在github.com/anonymousGiga/Rustonomi...详细内容drain 是一个集合 API,它将容器内的数据所有权移出,却不占有容器本身。我们可以声明一个 Vec 所有内容的所有权,然后复用分配给它的空间。它产生一个迭代器(Drain),以返回 Ve ......
346
0
0
2022-04-29
介绍本系列录制的视频主要放在B站上Rust死灵书学习视频Rust 死灵书相关的源码资料在github.com/anonymousGiga/Rustonomi...详细内容在本节中,抽取出来一个RawVec对之前的代码进行重构,如下(重建一个工程):#![feature(ptr_internals)] use std::mem; use std::allo ......
199
0
0
2022-04-29
介绍本系列录制的视频主要放在B站上Rust死灵书学习视频Rust 死灵书相关的源码资料在github.com/anonymousGiga/Rustonomi...详细内容IntoIter 以值而不是引用的形式访问 Vec,同时也是以值的形式返回元素。为了实现这一点,IntoIter 需要获取 Vec 的分配空间的所有权。IntoIter 也需要 Double ......
202
0
0
2022-04-29
介绍本系列录制的视频主要放在B站上Rust死灵书学习视频Rust 死灵书相关的源码资料在github.com/anonymousGiga/Rustonomi...详细内容下面为MyVec实现insert和remove函数:#![feature(ptr_internals)] use std::mem; use std::alloc::{alloc, re ......
307
0
0
2022-04-29
介绍本系列录制的视频主要放在B站上Rust死灵书学习视频Rust 死灵书相关的源码资料在github.com/anonymousGiga/Rustonomi...详细内容支持slice功能,我们实际上可以看成是对数据进行引用,因此我们只要实现Deref<Target=[T]>即可。#![feature(ptr_internals)] use s ......
205
0
0
2022-04-29
介绍本系列录制的视频主要放在B站上Rust死灵书学习视频Rust 死灵书相关的源码资料在github.com/anonymousGiga/Rustonomi...详细内容实现Drop最简单的就是循环调用pop方法,不过需要注意的是,当T不需要drop时,不是一定要调用drop。下面我们来实现drop:#![feature(ptr_internals)] u ......
250
0
0
2022-04-29
了解在 Linux 上安装 Rust 编程语言及其包管理器 Cargo 的各种方法。自从 Mozilla 贡献了 Rust 语言之后,它就获得了更加突出和受欢迎的地位。口说无凭。Rust 将被使用在 Linux 内核中,它是继 C 语言之后的第二种编程语言。许多开发人员也开始使用 Rust 语言制作很棒的基于命令行的工具。这些工具通常可以 ......
224
0
0
2022-04-27
基本的 Git 命令 对于通常的克隆、添加、提交推送已经足够好了。但如果你在一个有多个贡献者的大型项目上工作,你可能需要将事情可视化。GUI 工具可以让你更好地了解 diff、stash 和 blame 的情况。但是,如果你常用终端,又想要 Git 的舒适性,我为你准备了一个好工具。它叫 GitUI,它提供了 ......
184
0
0
2022-04-26
Rust 的高性能、高可靠性和高生产力使它适合于嵌入式系统。在过去的几年里,Rust 在程序员中获得了热情的追捧。技术潮流来来去去,所以很难将仅仅因为某项新技术而产生的兴奋与对某项技术的优点的兴奋区分开来,但我认为 Rust 是一种真正设计良好的语言。它的目标是帮助开发者建立可靠和高效的软件,而且它从一开始就是为这个目的设计的。你可能听过一些 Rust 的关 ......
202
0
0
2022-04-25
String compared to strRust StringRust str刚接触Rust时,可能我们对String和str之间的关系和区别不太清楚,以至于在编写函数时不太确定要用哪种类型比较好。本文主要就这个问题进行阐述。Rust的官方文档在String的解释中,简要的指明了String和str之间的关系。String“The String type ......
155
0
0
2022-04-22
从 Rust 标准库学习一些有用的关键字。我使用 Rust 已经有几个月了,写的东西比我预期的要多——尽管随着我的学习,我改进了所写的代码,并完成了一些超出我最初意图的更复杂的任务,相当多的东西已经被扔掉了。我仍然喜欢它,并认为谈论一些在 Rust 中反复出现的重要关键字可能会有好处。我会提供我个人对它们的作用的总结:为什么你需要考虑如何 ......
150
0
0
2022-04-15