分享
golang 导入自定义结构体、实现接口
droid_zf · · 5467 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
项目根目录为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.属性方法首字母大写,否则无法调用
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信5467 次点击
下一篇:goLang异常处理
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
项目根目录为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.属性方法首字母大写,否则无法调用