首页 > 技术文章 > 【go笔记】包管理

XY-Heruo 2021-11-14 21:24 原文

前言

在很多编程语言中,为了封装和隔离代码,同时也为了代码复用,都有包或者命名空间的语法要素,比如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("======")
}

推荐阅读