
接口是用来定义行为的类型,这些被定义的行为不由接口直接实现,而是通过方法由用户定义的类型实现。在 Go 语言中,只有当有两个或两个以上的具体类型必须以相同的方式进行处理时才需要接口。当新的类型出现时,更简单方法的、更小的接口更容易满足需求,对于接口设计的一个好的标准就是 ask only for what you need
接口是用来定义行为的类型,这些被定义的行为不由接口直接实现,而是通过方法由用户定义的类型实现。在 Go 语言中,只有当有两个或两个以上的具体类型必须以相同的方式进行处理时才需要接口。当新的类型出现时,更简单方法的、更小的接口更容易满足需求,对于接口设计的一个好的标准就是 ask only for what you need
方法能给用户定义的类型添加新的行为,它有两种类型的接收者:值接收者(value receiver) 和指针接收者(pointer receiver),本文将介绍在 Go 中和方法相关的各种概念
Go 语言里用映射用来处理具有键值对结构的数据,可以使用 map literal 或 make 函数来初始化映射。注意映射的零值为 nil,不能给它添加键值对,否则会报编译错误
Go 语言有 3 种数据结构可以让用户管理集合数据:数组(array)、切片(slice)和映射(map),切片类型是在 Go 的数组类型之上所构建的抽象形式(切片会引用其底层数组的一个区间),因此要了解切片,我们必须首先了解数组
A struct type consists a collection of member variable declarations. 结构体是复合类型(composite types),当需要定义一个类型,它由一系列属性组成、每个属性都有自己的类型和值的时候,就应该使用结构体,它把数据聚集在一起。struct 类似于面向对象的编程语言中的一个没有方法的轻量级 class,不过因为 Go 语言中没有类的概念,所以在 Go 语言中结构体有着更为重要的地位