10 接口

10 接口

使用接口

​ 接口是一组行为规范的集合,只负责定义行为集合的类型,不决定实现。真正实现的符合接口定义的方法。

​ 满足了接口所有定义的被称为实现了接口。

// Package main -----------------------------
// @file : interface.go
// @author : Yunyin
// @contact : yunyin_jayyi@qq.com
// @time : 2023/7/27 22:53
// -------------------------------------------
package main

import "fmt"

type Human interface {
Say(int, int) int
}

func foo(h Human) {
c := h.Say(3, 6)
fmt.Println(c)
}

type Jim struct {
}
type Tom struct {
}

func main() {
var a Human
t := Tom{}
a = t
foo(a)

j := Jim{}
a = j
foo(a)

}

func (receiver Tom) Say(a, b int) int {
return a - b
}

func (receiver Jim) Say(a, b int) int {
return a + b
}

空接口

​ 空接口就是没有任何行为定义的接口。所有类型都符合这个接口的定义,都实现了这个接口。因此这个接口可以传入任何类型。在标准中空接口也被称为any类型。