您将学习创建自己的程序包并导入自定义程序包。在此示例中,您将看到如何从另一个或子包中导入结构。您还可以从主程序包中调用自定义程序包的功能。
以下将是我们应用程序的目录结构。
├── 家庭
│ ├── go.mod
│ ├── main.go
│ └── 父亲
│ └── 父亲
│ └── 儿子
│ └── 儿子去
进去 家庭 目录并运行以下命令以创建名为go的go模块 家庭.
go mod 在里面 家庭
上面的命令将创建一个名为 go.mod。以下是文件的内容。
module 家庭
go 1.14
family\main.go
要使用自定义包,我们必须先导入它。导入路径是模块的名称,该名称后附有包的子目录和包名称。在我们的示例中,模块名称为 家庭 父亲包在家庭下面的父亲文件夹中。并且,包son位于父文件夹下的son文件夹中。
因此,该行导入 “家庭/父亲” 将导入 父亲 包装,相似 “家庭/父亲/儿子” 将导入 儿子 包
包 main
import (
parent “家庭/父亲”
child “家庭/父亲/儿子”
"fmt"
)
func main() {
f := new(parent.Father)
fmt.Println(f.Data("Mr. Jeremy Maclin"))
c := new(child.Son)
fmt.Println(c.Data("Riley Maclin"))
}
我们将父亲包作为父母,儿子包作为孩子。在main()函数中,我们现在可以使用上述别名来定义父亲和儿子结构。
family \ 父亲 \ 父亲
建立档案 父亲 在 - 的里面 父亲 夹。里面的文件 父亲 文件夹应以该行开头 包父 因为它属于 父亲 包。
包 父亲
import "fmt"
func 在里面() {
fmt.Println("Father 包 在里面ialized")
}
type Father struct {
Name string
}
func (f Father) Data(name string) string {
f.Name = "Father : " + name
return f.Name
}
的 在里面 函数可用于执行初始化工作,也可用于在执行开始之前确认程序的正确性。
家庭\父亲\儿子\ 儿子去
建立档案 儿子去 在 - 的里面 儿子 夹。里面的文件 儿子 文件夹应以该行开头 包子 因为它属于 儿子 包。
包 儿子
import "fmt"
func 在里面() {
fmt.Println("Son 包 在里面ialized")
}
type Son struct {
Name string
}
func (s Son) Data(name string) string {
s.Name = "Son : " + name
return s.Name
}
family>go run main.go
如果运行该程序,将得到以下输出。
Father 包 在里面ialized Son 包 在里面ialized Father : Mr. Jeremy Maclin Son : Riley Maclin