go结构体笔记

141 阅读2分钟

「这是我参与2022首次更文挑战的第20天,活动详情查看:2022首次更文挑战」。

0 环境

1 前言

Go语言中没有的概念,但是我们也需要类似这样的功能,在Go语言文档中的面向对象里没找到,最后发现原来结构体就是嘛(和c的结构体好像),在Go基础里,当时没仔细读文档,一定要认真读文档,别先入为主。

2 结构体概念

结构体聚合一个或多个任意类型的值,自定义一个结构体,type+struct关键字固定组合。注:类型名(同包内)和字段名唯一。

type 类型名 struct{
 字段名 字段类型
 字段名 字段类型 
 ...
}

若是字段类型一致,可以简写为:字段名,字段名,... 字段类型。

type 类型名 struct{
 字段名, 字段名 字段类型
 字段名 字段类型  
 …
}

3 结构体声明和初始化

结构体声明和普通变量声明一样。

只声明,默认值为零值。

var u user

image.png

初始化格式:类型名{根据字段位置和类型,由上而下依次赋值即可},注意:类型名后面一定{},不是()。还有若是不按顺序初始化,会报错的,需要添加对应的字段名称,和map类型的初始化类似,参考下图。

image.png

image.png

获取具体字段的值,.操作符连接,如类型名变量.字段名 image.png

4 字段结构体

字段名 自定义结构体

初始化时:{字段名:类型名{字段:值}},和map的调用类似。 image.png

5 总结

只声明结构体,默认零值。初始化时:请按顺序赋值,若是不按顺序初始化:请加对应的字段名称。获取某个字段的值,.操作。还有一点,对于字段结构体,相当于套中套,调用和map调用方式类似。