Go编程笔记(18)

package main

import (
	"fmt"
)

type USB interface {
	Name() string
	Connect()
}

type PhoneConnector struct {
	name string
}

func (pc PhoneConnector) Name() string {

	return pc.name
}

func (pc PhoneConnector) Connect() {
	fmt.Println("Connect", pc.name)
}

func Disconnect(usb USB) {
	if pc, ok := usb.(PhoneConnector); ok {
		fmt.Println("Disconnrct:", pc.name)
		return
	}
	fmt.Println("Unkown device ")
}
func main() {
	a := PhoneConnector{"PhoneConnector"}
	a.Connect()
	Disconnect(a)
}

或者

package main

import (
	"fmt"
)

type USB interface {
	Name() string
	Connect()
}

type PhoneConnector struct {
	name string
}

func (pc PhoneConnector) Name() string {

	return pc.name
}

func (pc PhoneConnector) Connect() {
	fmt.Println("Connect", pc.name)
}

func Disconnect(usb interface{}) {

	switch v := usb.(type) {
	case PhoneConnector:
		fmt.Println("Disconnected", v.name)
	default:
		fmt.Println("Unkown device")
	}
}
func main() {
	a := PhoneConnector{"PhoneConnector"}
	a.Connect()
	Disconnect(a)
}

输出结果:

Connect PhoneConnector
Disconnrct: PhoneConnector


你可能感兴趣的:(Go编程笔记(18))