在 Go 中导入本地包

Jay Singh 2023年1月30日 2022年4月22日
  1. Go 中的包目录
  2. Go 中的主要包
  3. 在 Go 中使用 go mod init 初始化模块
  4. 在 Go 中将源代码文件放置以创建包
  5. 在 Go 中使用 import() 方法导入本地包
在 Go 中导入本地包

Go 中的包是同一目录中已编译的 Go 源代码文件的集合。

通常,这些包将在它们之间导出和导入代码。因此,代码是模块化的并且易于维护。

Go 中的包目录

工作区项目中有两个包:dir1dir2。每个文件生成目录都包含在包目录中。

└───workspace
    ├───dir1
    ├───dir2

Go 中的主要包

包的代码可以从任何文件中导出。然后,其他项目文件可以引用该包目录并导入代码。

这允许你导入单个包并访问该包中包含的文件中包含的所有代码。

// for files in dir1
package dir1

// for files in dir2
package dir2 

在 Go 中使用 go mod init 初始化模块

导入包时,第一步是创建一个新模块。

语法:

go mod init <module_name>

例如,在工作空间目录下,我们可以构建一个新模块,如下所示:

go mod init workspace

该文件提供了模块名称和 Go 版本,因为我们没有任何外部包。

module workspace
go 1.17

在 Go 中将源代码文件放置以创建包

在你的项目中构建一个新目录并将源代码文件放在它下面以创建一个包。

$ touch dir1/dir1.go
$ touch dir2/dir2.go

现在让我们为每个文件添加一些代码。

// dir1.go
package dir1
funcHello1() string {
    return "Hello everyone, I am from dir 1"
}

//dir2.go
package dir2
funcHello2() string {
    return "Hello everyone, I am from dir 2"
}

在 Go 中使用 import() 方法导入本地包

最后一步是导入本地包以使用每个包中的代码。

在项目的根目录下创建一个 main.go 文件,也称为工作区目录。

package main
import (
"fmt"
    "workspace/dir1"
    "workspace/dir2"
)
funcmain() {
    fmt.Println(dir1.Hello1())
    fmt.Println(dir2.Hello2())
}

输出:

Hello everyone, I am from dir 1
Hello everyone, I am from dir 2