作者:星夜幂语_525 | 来源:互联网 | 2023-05-17 22:29
接口interface
- 基本
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("Connected:",pc.name)
}
func main() {
a := PhoneConnector{"PhoneConnector"}
a.Connect()
Disconnect(a)
}
func Disconnect(usb USB){
if pc, ok := usb.(PhoneConnector); ok {
fmt.Println("Disconnected", pc.name)
return
}
switch v := usb.(type) {
case PhoneConnector:
fmt.Println("Disconnected", v.name)
default:
fmt.Println("Unknown device")
}
}
- 嵌入接口
type Connector interface {
Connect()
}
type USB interface {
Name() string
Connector
}
type PhoneConnector struct {
name string
}
func (pc PhoneConnector)Name()string {
return pc.name
}
func (pc PhoneConnector)Connect(){
fmt.Println("Connected:",pc.name)
}
func main() {
a := PhoneConnector{"PhoneConnector"}
a.Connect()
Disconnect(a)
}
func Disconnect(usb USB){
fmt.Println("Disconnected",usb.Name())
}