结构体:struct
结构体的声明:
type 标识符 struct{
field1 type
field2 type
}
例子:
type Student struct{
Name string
age int
}
结构体的访问,和其他语言一样,使用点
例子:
var stu Student
stu.Name = "tony"
stu.Age = 18
fmt.Printf("name = %s age = %d ",stu.Name,stu.Age,stu.Score)
struct定义的三种形式
var stu Student
var stu *Student = new(Student)
var stu *Student = &Student()
后面两种访问方式一样
stu.Name
stu.Age
或者
(*stu).Name
(*stu).Age
struct的内存布局:struct中的所有字段在内存是连续的,布局如下:(视频截图,伸手党)
r1,四个数都是连续的,r2指针是连续的,指针所指的不一定是连续的。
链表的定义:
单链表:
type Student struct {
Name string
Next* Student
}
单链表单向的,如果首尾相连,就是循环单链表。
双链表:
type Student struct {
Name string
Next* Student
Prev* Student
}
双链表双向的,如果首尾相连,就是循环双链表。
每个节点,包含前/后一个节点的地址,这样吧所有的节点串起来,通常吧链表中的第一个节点叫做链表头。这样子,链表就不是固定长度的。不循环的,如果next* == nil,就到结尾了。
2019年12月9日 北京雾霾重度污染,上下班路上当了一回人肉空气净化器,晚上喉咙感觉有点不适,嗯,多喝水。
今天工作还算顺利,手动将openstack 发布的kubernetes集群跑起来了,hyperkube这个包的封装后,确实功能比较强大,需要花点时间深入学习下。现在遗留问题是heat的stack状态无法获取kubernetes master的状态,因为有个pod是通过手动拉起,检查pod是失败的,需要调整方式,用kubelet指定yaml的方式拉起pod。本周的总体进度压力还是挺大的。
早上有个小插曲,无意间冒犯了小伙伴,切记下不为例。查看history的操作记录,这样的做法是很不对的,切记切记。心里挺愧疚的。
经过两天的逻辑英语公开课学习,确实公式很棒,将余额宝仅存的37.5元,买了一套36元的完整教程。哈哈哈,有时候就是这么凑巧。
最后来一句鸡汤:早点休息~