【Go】如何组织自己的包
作者:wallace-lai 发布:2023-07-19 更新:2023-07-19
创建工程目录并使用go mod初始化
假设工程目录叫demo,创建demo目录并使用go mod进行初始化。初始化成功后目录下会多一个go.mod文件。
~/workspace$ mkdir demo
~/workspace$ cd demo
~/workspace/demo$ go mod init example.com/demov1
go: creating new go.mod: module example.com/demov1
~/workspace/demo$
~/workspace/demo$ ls
go.mod
~/workspace/demo$
组织自己的package
接下来我们编写属于自己的名为calc的package,如下所示:创建calc子目录;在子目录下分别创建calc.go和tools.go源文件。在源文件中编写我们的代码,注意包名为calc。
// calc.go
package calc
func Add(x, y int) int {
return x + y
}
func Sub(x, y int) int {
return x - y
}
func add(x, y int) int {
return Add(x, y)
}
// tools.go
package calc
func Mul(x, y int) int {
return x * y
}
至此,calc包就编写完成了。我们回到工程目录demo下创建main.go以调用calc子包中的方法,如下所示。注意在导calc包时需要加上工程目录名作为前缀,然后在引用calc包中方法时需要用calc.method()的形式。
// main.go
package main
import (
"fmt"
"demo/calc" // note
)
func main() {
sum := calc.Add(1, 2) // note
mul := calc.Mul(3, 4)
fmt.Println(sum)
fmt.Println(mul)
}
最终,整个工程的文件组织形式如下所示。
~/workspace/demo$ tree .
.
├── calc
│ ├── calc.go
│ └── tools.go
├── go.mod
└── main.go
1 directory, 4 files
~/workspace/demo$
以上便是在Go语言中组织子包的一个小案例。