package main
import "fmt"
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())
}
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