学做面食最好的网站,设计公司logo大全,搭建网站框架,seo体系网站的建设及优化前言
在Go语言中#xff0c;接口类型#xff08;interface#xff09;完全可以作为一个函数的参数。这是Go语言多态性的一个重要体现#xff0c;允许函数接受任何实现了接口中定义的方法的类型的实例。
一、接口#xff08;interface#xff09;定义
type Reader inte…前言
在Go语言中接口类型interface完全可以作为一个函数的参数。这是Go语言多态性的一个重要体现允许函数接受任何实现了接口中定义的方法的类型的实例。
一、接口interface定义
type Reader interface {Read() string
}定义interface接口包含相应的方法。
二、定义结构体实现interface中的方法
// MyStruct 是一个结构体它将实现 Reader 接口
type MyStruct struct {Message string
}// Read 方法使得 MyStruct 实现了 Reader 接口
func (ms MyStruct) Read() string {return ms.Message
}
MyStruct是一个结构体Message作为结构体中的字段MyStruct结构体实现了Read的方法就这样实现了该接口。
三、定义公共函数接受接口interface类型的参数并调用其方法
func processItem(reader Reader) {content : reader.Read()fmt.Println(Read content:, content)
}四、主函数调用
func main() {// 创建 MyStruct 的实例myInstance : MyStruct{Message: Hello, World!}// 将 MyStruct 的实例作为 Reader 接口类型的参数传递给 processItem 函数processItem(myInstance)
} 不同的struct可分别interface中的方法实现再将实例后的struct传递给公共的处理函数以此实现一个go语言中的多态性。