前言
在很多编程语言中,为了封装和隔离代码,同时也为了代码复用,都有包或者命名空间的语法要素,比如c#中的namespace
以及java中的package
。Go语言中包的作用和其它语言中的库和模块类似。
在go语言中,包的声明语法如下:
package packagename
包名告诉编译器,当前文件属于哪个包。一般来说,Go语言包的源代码存放在一个根目录中,其中包含一个或者多个.go
文件。这些.go
文件按照目录进行分组并构建出上下级的层级结构。每组.go
文件被称为包。
所有.go
文件除了包的注释和空行外,第一行都应该对包进行声明。每个包都在一个单独的目录中,但不能将多个包放在同一个目录中,也不能将同一个包中的文件分散到不同的目录中。简单来说,同一个目录中的所有.go
文件必须属于同一个包名,否则会报错。
如果当前编写的Go程序要作为一个可执行的程序,那么必须包含一个main
包和一个main
函数。
示例代码: test.go
package pk2
import "fmt"
func Hello() {
fmt.Println("Hello World")
}
实例代码的文件名为test.go
,目录名为pk2
。
执行如下命令会生成库文件
go install ./test.go
如果成功执行,那么会在${GOPATH}/pkg/test2021
目录下生成一个pk2.a
文件。
包的导入
包的导入语法如下:
import packagename
// 或
import (
"./test2021" // 当前目录下的test2021
)
示例:
package main
import (
"fmt"
"test2021/pk2"
)
func main() {
pk2.Hello()
fmt.Println("======")
}