go-interface

    xiaoxiao2025-04-26  6

    package main import "fmt" /* 未具体实现的方法/仅包含方法名-参数-返回值的方法) 1、定义接口 2、实现接口方法 */ //谁连接?连接状态?需要提供接口 type USB interface { Name() string Connecter } //单独成一个类型接口 type Connecter interface { Connect() } //通过这样的方式去实现接口 func (pc phoneConnecter) Name() string { return pc.name } func (pc phoneConnecter) Connect() { fmt.Println("connect", pc.Name()) } /*------手机连接--有一个string属性-------------*/ type phoneConnecter struct { name string } /*------断开连接--参数为实现接口的对象----*/ func DisConnect(usb USB) { //判断是不是手机类型 if pc, ok := usb.(phoneConnecter); ok { fmt.Println("disConnect", pc.Name(), pc.name) } } func main() { a := phoneConnecter{"我是手机我要连接"} a.Connect() DisConnect(a) } connect 我是手机我要连接 disConnect 我是手机我要连接 我是手机我要连接

    或者可以修改为如下:

    func DisConnect(usb USB) { //判断是不是手机类型 switch v := usb.(type) { case phoneConnecter: fmt.Println("DisConnect", v.Name()) default: fmt.Println("unknown device") } } connect 我是手机我要连接 DisConnect 我是手机我要连接
    转载请注明原文地址: https://ju.6miu.com/read-1298465.html
    最新回复(0)