Go从入门到精通——创建方法和接口
创建方法和接口
本章节介绍如下方法
- 使用方法
- 创建方法集
- 使用方法和指针
- 使用接口
结构体让我们明白它是一种创建数据结构的方式,还知道可使用点表示法来访问结构体中的数据。然而,涉及更复杂的操作时,理解和处理起来就不那么容易了。Go 提供了另一种操作数据的方式——通过方法来操作。
1.1 使用方法
方法类型于函数,但有一点不同:在关键字 func 后面添加了另一个参数部分,用于接受单个参数。
type Movie struct{ Name string Rating float32 } func (m *Movie) summary() string{ //code }
请注意,在方法声明中,关键字 func 后面多一个参数——接收者。严格地说,方法接收者是一种类型,这里是指向结构体 Movie 的指针。接下来是方法名、参数以及返回类型。除多了包含接收者的参数部分外,方法与函数完全相同。可将接收者视为与方法相关联的东西。通过声明方法 summary,让结构体 Movie 的任何实例都可使用它。为何要使用方法,而不直接使用函数呢?例如,下面的函数与前面的方法声明等价:
1 2 3 4 5 6 7 8 | type Movie struct { Name string Rating float64 } func summary(m *Movie) string { //code } |
函数 summary 和结构体 Movie 相互依赖,但它们之间没有直接关系。
例如,如果不能访问结构体 Movie 的定义,就无法声明函数 summary。如果使用函数,则在每个使用函数或结构体的地方,都需包含函数和结构体的定义,这会导致代码重复。另外函数发生任何改变,都必须随之修改多个地方。这样看来在函数与结构体关系密切时,使用方法更合理。
方法 summary 的实现将 float64 等级制转换为字符串并设置其格式。使用方法的优点在于,只需编写方法实现一次,就可以对结构体的任何势力进行调用。
分类:
Go专题精讲
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具