golang interface用法
Golang 用法 interface
2023-09-27 14:25:20 时间
接口是一个或多个方法签名的集合,任何类型的方法集中只要拥有与之对应的全部方法,
就表示它"实现"了该接口无须在该类型上显式添加接口声明。
所谓对应方法,是指有相同名称、参数列表 (不包括参数名) 以及返回值。当然,该类型还
可以有其他方法。
(1)接口命名习惯以er结尾结构体。
(2)接口只有方法签名,没有实现。
(3)接口没有数据字段。
(4)可在接口中嵌入其他接口。
(5)类型可实现多个接口。
下面举个栗子:
用例:一个人,他的有两种角色,在公司是程序猿,在家里是孩他爸。在公司当程序猿时就写bug,
在家当爹时就洗尿布。则其接口和结构体的映射关系为:
package main import "fmt" type CodeMonkey interface { codingEveryday() string } type Parent interface { washingDiaper() string } type Person struct { id int name string } func (self *Person) codingEveryday() string { return fmt.Sprintf("user %d, %s write bug every day.", self.id, self.name) } func (self *Person) washingDiaper() string { return fmt.Sprintf("user %d, %s take care of his baby.", self.id, self.name) } func main() { var monkey CodeMonkey = &Person{1, "Tom"} fmt.Println(monkey.codingEveryday()) var father Parent = &Person{2, "John"} fmt.Println(father.washingDiaper()) }
摘自:https://studygolang.com/articles/795
相关文章
- 聊一聊 golang 的测试与性能调优
- Golang开发环境搭建
- Golang 【basic_leaming】基本数据类型
- Golang 如何从socket读出所有数据
- prometheus client_golang使用
- 用Go语言 网络编程之实现多客户端 连接服务器 并且发送消息代码实现 (Golang经典编程案例
- golang 获取当前项目的根路径
- Golang中 json tag 标签的作用和用法讲解
- Golang 实现 Redis(1): Golang 编写 Tcp 服务器
- Golang如何优雅接入多个远程配置中心?
- 【GoLang】3.6 模板
- golang test cannot find import
- golang对struct排序的方法
- golang struct转map