Go从入门到精通——创建方法和接口

创建方法和接口

本章节介绍如下方法

  • 使用方法
  • 创建方法集
  • 使用方法和指针
  • 使用接口

  结构体让我们明白它是一种创建数据结构的方式,还知道可使用点表示法来访问结构体中的数据。然而,涉及更复杂的操作时,理解和处理起来就不那么容易了。Go 提供了另一种操作数据的方式——通过方法来操作。

1.1 使用方法

  方法类型于函数,但有一点不同:在关键字 func 后面添加了另一个参数部分,用于接受单个参数。

type Movie struct{
    Name string
    Rating float32
}

func (m *Movie) summary() string{
    //code
}

  请注意,在方法声明中,关键字 func 后面多一个参数——接收者。严格地说,方法接收者是一种类型,这里是指向结构体 Movie 的指针。接下来是方法名、参数以及返回类型。除多了包含接收者的参数部分外,方法与函数完全相同。可将接收者视为与方法相关联的东西。通过声明方法 summary,让结构体 Movie 的任何实例都可使用它。为何要使用方法,而不直接使用函数呢?例如,下面的函数与前面的方法声明等价:

type Movie struct{
    Name string
    Rating float64
}

func summary(m *Movie) string {
    //code
}

  函数 summary 和结构体 Movie 相互依赖,但它们之间没有直接关系。

  例如,如果不能访问结构体 Movie 的定义,就无法声明函数 summary。如果使用函数,则在每个使用函数或结构体的地方,都需包含函数和结构体的定义,这会导致代码重复。另外函数发生任何改变,都必须随之修改多个地方。这样看来在函数与结构体关系密切时,使用方法更合理。

  方法 summary 的实现将 float64 等级制转换为字符串并设置其格式。使用方法的优点在于,只需编写方法实现一次,就可以对结构体的任何势力进行调用。

 

 
posted @ 2021-08-23 11:48  左扬  阅读(126)  评论(0编辑  收藏  举报
levels of contents