Go语言接口(interface)简单应用
Posted Yuan_sr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go语言接口(interface)简单应用相关的知识,希望对你有一定的参考价值。
go语言中的多态特性主要是通过接口来实现的,例如在现实世界中可以把手机,相机,U盘等插到USB标准接口上,而不用担心该USB接口是为哪种设备提供的,原因是商家在设计USB接口时都遵守了一个USB标准,如尺寸,排线等,如果电脑将USB作为输入接口,那么只要是能够插到该接口的设备理论上都可以连接电脑进行工作。下面通过Go语言实现这种场景:
package main
import (
"fmt"
)
//定义一个USB接口,该接口提供两个方法
type USB interface {
start()
stop()
}
//定义一个手机的结构体
type phone struct {
}
//让手机实现USB接口中的两个方法,且必须都要实现
func (p phone) start (){
fmt.Println("phone start")
}
func (p phone) stop(){
fmt.Println("phone stop")
}
//定义一个相机结构体
type camera struct {
}
//让相机也实现USB接口中的两个方法,且必须都要实现
func (c camera) start () {
fmt.Println("camera start")
}
func (c camera) stop (){
fmt.Println("camera stop")
}
//定义一个电脑结构体
type computer struct {
}
//定义一个电脑的成员方法,该方法将USB作为输入接口,并且该方法启动USB接口中的两个方法,不是必须都要将两个启动
func (c computer) working (u USB){
u.start()
u.stop()
}
func main(){
phone := phone{}
camera := camera{}
computer := computer{}
//只要是实现了USB接口(所谓实现USB接口就是实现了USB接口中定义的所有方法)的设备,都可以通过电脑启动工作
computer.working(phone)
computer.working(camera)
}
执行结果:
phone start
phone stop
camera start
camera stop
以上是关于Go语言接口(interface)简单应用的主要内容,如果未能解决你的问题,请参考以下文章