Golang结构体、方法、接口

结构体是一种聚合的数据类型,它是由一系列具有相同类型或不同类型的数据结构组成的数据集合。每个数据成为结构体的成员。

结构体的创建

type Student struct{}

var s1 Student = Student{}

var p1 *Student = &Student{}

p2 := &Student{name:"zhangsan",addr:"bj"}

结构体的操作

s.id = 1

p1 := &s

p1.id = "mike"   (==)   (*p1).id = "mike"

如果结构体的全部成员都是可以比较的,那么结构体也是可以比较的,那样的话两个结构体将可以使用"=="和"!="运算符。

结构体传递是值传递,结构体指针传递是引入传递

结构体和匿名字段

只提供类型,不写字段名就是匿名字段,也称为嵌入字段。结构体通过匿名字段实现继承。

var s1 Student = Student{Person{"mike","m"},1}

s1.Person.name = "jack"

同名字段,就近原则,由外到内

方法

带有接收者的函数称为方法,一个方法是一个和特殊类型关联的函数

func (receiver ReceiverType) funName(parameters) (results)

接口

接口是一个自定义类型,接口类型具体描述了一系列方法的集合。

结构体实现了接口的方式,是添加一个实现接口函数的指针方法

接口超集可以转换为子集,子集不能转换为超集

空接口

空接口(interface{})不包含任何的方法,正因为如此,所有的类型都实现了空接口,因此空接口可以存储任意类型的数值。

你可能感兴趣的:(Golang结构体、方法、接口)