接口, 结构,方法三者之间的关系
package main
import "fmt"
type Tools interface {
Car(name string) string
Fly(name string) string
}
type tools struct {
}
//第一种写法 推荐
func NewTools() Tools {
return &tools{} //加了&,写方法时必须是指针
}
//第二种写法
func NewTools2() *tools {
return &tools{}
}
func (t *tools) Car(name string) string {
return "This is Car by " + name
}
func (t *tools) Fly(name string) string {
return "This is Fly by " + name
}
func main() {
var svc Tools //定义一个接口
svc = NewTools() //将实现接口的方法赋值
s1 := svc.Car("aodi")
s2 := svc.Fly("boyin")
fmt.Println(s1)
fmt.Println(s2)
}