⑨ 接口
本文即将看到:
⚬ ------ 接口的使用
⚬ ------ 接口类型和断言
⚬ ------ Type关键字
一、接口的使用
1.概念
面向对象世界中的接口的一般定义是“接口定义对象的行为”。它表示让指定对象应该做什么。实现这种行为的方法(实现细节)是针对对象的。
在Go中,接口是一组方法签名。当类型为接口中的所有方法提供定义时,它被称为实现接口。它与OOP非常相似。接口指定了类型应该具有的方法,类型决定了如何实现这些方法
Go语言中,接口和类型的实现关系,是非侵入式
2.定义接口
type name interface{
name type
name2 type
...
} //定义接口
type struct_name struct{
// variables
} //定义结构体
func (struct_name_variables 结构体名字) 方法名() [返回type]{
//方法实现
}
二、接口类型和断言
1.接口类型
多态
通过接口实现多态
空接口
不包含任何的方法,正因如此,所有的类型都实现了空接口,因此空接口可以存储任意类型的数值
package main
import "fmt"
func main() {
var a1 A = Cat{"花猫"}
var a2 A=Person{"王二狗",30}
fmt.Println(a1)
fmt.Println(a2)
}
type A interface {
} //空接口
type Cat struct {
color string
}
type Person struct {
name string
age int
}
接口嵌套
package main
import "fmt"
func main() {
var cat Cat = Cat{}
cat.test()
cat.test2()
cat.test3()
}
type A interface {
test()
}
type B interface {
test2()
}
type C interface {
A
B
test3()
}
type Cat struct {
}
func (c Cat) test() {
fmt.Println("test()....")
}
func (c Cat) test2() {
fmt.Println("test2()...")
}
func (c Cat) test3() {
fmt.Println("test3()...")
}
2.接口断言
三、Type关键字
1.定义
type是go语法里的重要而且常用的关键字,type绝不只是对应于C/C++中的typedef。搞清楚type的使用,就容易理解go语言中的核心概念struct、interface、函数等的使用。
2.类型定义
结构体
接口
定义函数
类型别名
type count=int // count == int
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?