昨天的笔记记录到了函数和指针,今天继续跟随着青训营课程的进度,回顾与巩固有关Go语言中结构体的内容。在Go语言中,结构体是由一系列具有相同类型或不同类型的数据所构成的数据集合。与数组不同,结构体可以为不同项定义不同的数据类型。
对结构体的定义需要用到type和struct语句。我们用struct语句定义出一个新的数据类型,用type语句对结构体的名称进行命名。这里用一个user结构体作为例子,里面有id和password两个类型:
type user struct{ id int password string }
这样,一个新的结构体就创建完成。当我们要使用时,对结构体的赋值与修改的方法也是十分多样。面对我们前面举的例子,只有id和password两个数据,可以使用下面这个方法:
a :=user{"1234567","abcdefg"}
这是针对数据较少的结构体,倘若结构体的数据较多,那就老老实实使用下面的方法:
a :=user{id:"1234567",password:"abcdefg"}
上面这个方法也可以单单对id这个数据进行赋值。但也正如我前面所说,对结构体的赋值方法多样,也可以用下面的代码进行操作:
a.password="abcdefg"
写到这里发现有个东西遗漏了,假若这个user不止一个该怎么声明呢?假设我们有user1和user2,已经创建好了这个user结构体,声明代码如下:
var user1 user var user2 user
课程中做的也是相类似的例子,还做了对密码password的校验,若不同则返回false的内容,这里就不展示了。
关于结构体,还有关于结构体的指针。与普通的指针一样,也是通过var进行声明:
var c *user
定义的指针变量可以存储结构体变量的地址。可以在结构体变量前添加“&”来查看结构体变量地址。当要使用结构体指针访问结构体成员时,使用"."即可实现。