项目根目录为mygo,新建go文件,写一个入口函数
package main
func main() {
}
先新建一个新建model文件夹并新建.go文件(文件名随意无影响),自定义结构体
package people
type Info struct {
Age int
}
type People struct {
Name string
Info Info
}
func (p People) Getname() string {
return p.Name
}
func (p People) Setname(name string) People {
p.Name = name
return p
}
声明首字母大写可供外部调用
再新建imp文件夹,用来放接口文件,新建.go文件,写一个接口
package peoplei
import "mygo/model" //导入刚才的定义的结构体包
type PeopleI interface {
Getname() string // 返回类型string
Setname(name string) people.People //放回类型为people
}
入口文件中导入自定义结构体并实现接口
package main
import (
"fmt"
"mygo/model" //结构体
"mygo/imp" //接口目录
)
func main() {
var pi peoplei.PeopleI = new(people.People); //声明接口
p := pi.Setname("dagx") //Setname返回结构体,此处声明p并赋值
p.Info.Age = 10;
fmt.Print(p.Getname(), ":", p.Info.Age)
}
总结
-
1.导入包import后是文件夹,并不是文件名,文件的命名与导入和调用无关
-
2.调用时用的是package的名称,跟文件名无关
-
3.属性方法首字母大写,否则无法调用
有疑问加站长微信联系(非本文作者)