笔记
Golang接口
package main
import (
"fmt"
)
type Usb interface {
start()
stop()
}
type Usb2 interface{}
type Usb3 interface {
Usb
Usb2
}
type Phone struct {
Name string
}
func (p Phone) start() {
fmt.Println(p.Name, "start启动")
}
func (p Phone) stop() {
fmt.Println(p.Name, "start停止")
}
func (p *Phone) start() {
fmt.Println(p.Name, "start启动")
}
func (p *Phone) stop() {
fmt.Println(p.Name, "start停止")
}
type Camera struct {
name string
}
func (c Camera) start() {
fmt.Println(c.name, "start启动")
}
func (c Camera) stop() {
fmt.Println(c.name, "start停止")
}
type Test struct {
name string
}
func (t Test) start() {
fmt.Println(t.name, "start启动")
}
func test(usb Usb) {
usb.start()
usb.stop()
}
type Empty interface{}
func main() {
phone := Phone{
Name: "荣耀9X",
}
var usb1 Usb
usb1 = phone
usb1.start()
camera := Camera{
name: "康威相机",
}
var usb2 Usb = camera
var usb3 Usb2 = camera
usb2.stop()
fmt.Println("多接口!!!", usb3)
test(phone)
var empty Empty
var a string = "12345"
empty = a
fmt.Println(empty)
var m1 = make(map[string]interface{})
m1["name"] = "why"
m1["age"] = 19
m1["sex"] = true
fmt.Println(m1)
var c = []interface{}{1, "why", true}
fmt.Println(c)
}