Go语言介绍(十九)--Go 语言接口

目录

接口声明

示例:接口声明

实现接口

示例:实现接口

使用接口

示例:使用接口

方法的接收者类型

示例:多种接收者类型

匿名字段和接口实现

示例:匿名字段实现接口

方法签名中的错误参数

示例:包含错误的方法签名

空接口 interface{}

示例:使用空接口

接口嵌入

示例:接口嵌入

总结


Go 语言中的接口(interface)是一种抽象类型,它定义了一组方法的集合。接口在 Go 语言的设计中占据着核心地位,是实现面向对象编程中多态特性的关键。接口使得不同类型的对象可以按照统一的协议进行交互,同时也提供了类型检查和动态分派的能力。下面详细介绍 Go 语言中的接口。

接口声明

接口通过 type 关键字和接口名来声明,并列出接口应该包含的方法签名。接口的方法签名仅包含方法名和参数类型,不包含具体的实现。

示例:接口声明
 
  

go

深色版本

1type Greeter interface {
2    Greet() string
3}

实现接口

任何实现了接口中所有方法签名的类型都自动实现了该接口。不需要显式声明实现关系。

示例:实现接口
 
  

go

深色版本

1type Person struct {
2    Name string
3}
4
5func (p Person) Greet() string {
6    return "Hello, my name is " + p.Name
7}

使用接口

接口可以在函数参数、返回值或变量声明中使用,从而可以接收实现了该接口的任何类型。

示例:使用接口
 
  

go

深色版本

1func greet(g Greeter) {
2    fmt.Println(g.Greet())
3}
4
5func main() {
6    p := Person{Name: "Alice"}
7    greet(p) // 输出 "Hello, my name is Alice"
8}

方法的接收者类型

接口中的方法可以有不同的接收者类型。当一个类型实现了多个接口时,可以有多个不同接收者的类型。

示例:多种接收者类型
 
  

go

深色版本

1type Speaker interface {
2    Speak() string
3}
4
5type Singer interface {
6    Sing() string
7}
8
9ty

你可能感兴趣的:(二十天教你学会,Go,语言,microsoft,golang,开发语言)