1.结构体
类似c语言中结构体
操作结构体
声明完结构体之后我们需要创建结构体的实例,可以使用如下几种方法创建,仍然以上面的Student结构体为例。
s1 := new(Student) //第一种方式
s2 := Student{"james", 35} //第二种方式
s3 := &Student { //第三种方式
Name: "LeBron",
Age: 36,
}
使用new函数会创建一个指向结构体类型的指针,创建过程中会自动为结构体分配内存,结构体中每个变量被赋予对应的零值。
也可以使用第二种方式生命结构类型,需要注意的是此时给结构体赋值的顺序需要与结构体字段声明的顺序一致。
第三种方式更为常用,我们创建结构体的同时显示的为结构体中每个字段进行赋值。
2.方法
方法与函数类似,只不过在方法定义时会在func和方法名之间增加一个参数
func (r Receiver)func_name(){
// body
}
其中r被称为方法的接收者.对于一个方法来说接收者分为两种类型:值接收者和指针接收者。
3. 接口
接口相当于一种规范,它需要做的是谁想要实现我这个接口要做哪些内容,而不是怎么做。在go语言中接口的定义如下所示:
type Namer interface {
Method1(param_list) return_type
Method2(param_list) return_type
...
}```