首页 rust

语言基础篇

变量与数据类型

数据类型

数组类型

数组的声明与初始化:

image-20210803153138957.png

索引从零开始, 为了防止数组索引越界,建议使用动态数组

结构体

最简单的结构体:

image-20210803153648681.png

如果我们想要写一个动态的链表,该怎么写呢?

image-20210803194040339.png

这里要注意如何写指向结构体本身的智能指针

结构体的使用还有访问,注意第十行中score的赋值。

image-20210803194214747.png

这里要注意一下,结构体中的值默认不可变,且不允许只将某个字段标记为可变,要想改变,必须在实例创建的时候将其声明为可变的

还有一种声明方式,这里需要注意的是,Student2除了name其他的未设置字段与Student一致,注意最后不要加逗号

image-20210803194607436.png

还有两种特殊的结构体:元祖结构体与单元结构体

元祖结构体:只有类型,没有名称,感觉就是用在那些已知的地方

image-20210803195057527.png

单元结构体:疑问

image-20210803195129272.png

枚举

保证枚举值

image-20210803202508188.png

std::collections中的四种通用的容器类型

image-20210803202957269.png

动态数组(VEC)

动态数组的产生原因是因为防止索引越界的产生

创建:

image-20210803203949955.png

前者常见一个空的动态链表,后者床架能赢制定容量的动态数组,后者创建了一个容量为10的动态数组,但是当长度超过10的时候就要重新分配

宏创建:

image-20210813205125256.png

使用vec!宏创建并初始化,

第一行因为没有给定数值,所以需要声明数据类型,

第二行就是创建初始值为1, 2, 3,

第三行就是创建数组包含10个元素,初始值为0

动态数组修改

push添加,实例名[索引]重新赋值

pop删除并返回最后一个元素,如果为空返回None

remove删除并返回动态属猪制定索引的元素,同时将后面的往前移动一位,(就是将这个节点彻底拿下了)

访问就是实例名[索引]的访问

或者是用get方法访问

image-20210813210829244.png

以及一个遍历,注意上下两个遍历,一个需要使用并改变内部元素,一个不需要

image-20210813211604953.png

豆瓣链接:https://book.douban.com/subject/35447165/

疑问1:单元结构体用在哪里,有什么用




文章评论

目录