如何在 Go 中导入本地包

1,262 阅读1分钟

Go Modules 功能简化了包管理,并允许你在无需 GOPATH 的情况下导入本地包。使用 Go Modules,可以更有效地组织项目及其依赖关系。

要使用 Go Modules 导入本地包,可以按照以下步骤进行操作。

步骤1:初始化新的 Go Modules

在项目的根目录中,使用以下命令初始化一个新的 Go 模块。

go mod init mymodule

此命令将在项目的根目录中创建一个 go.mod 文件。

# https://github.com/logeast/101/blob/main/go-local-module/go.mod

module mymodule

go 1.21.0

步骤2:创建子目录和包

你可以在项目内部为本地包创建一个子目录。

mkdir mypackage

mypackage 替换为你的本地包的所需名称。

然后可以在新的子目录中创建一个 .go 文件(例如 mypackage/hello.go),并定义该包及其函数。

// https://github.com/logeast/101/blob/main/go-local-module/mypackage/hello.go

package mypackage

func SayHello() string {
  return "Hello,本地包!"
}

名为 mypackage 的本地包中包含一个 SayHello() 函数。

步骤3:导入本地包

要在同一模块的另一个文件中导入本地包,可以使用模块名称后跟包名称的方式。

import (
  "mymodule/mypackage"
)

mymodule 替换为你初始化 Go 模块时使用的名称,并将 mypackage 替换为你的本地包的名称。

新建一个 main.go ,然后引用我们创建的包。以下是一个简单的示例:

// https://github.com/logeast/101/blob/main/go-local-module/main.go

package main

import (
	"fmt"
	"mymodule/mypackage"
)

func main() {
	hello := mypackage.SayHello()
	fmt.Println(hello)
}

在 main.go 中,我们使用模块名称 mymodule 后跟包名称 mypackage 导入了本地包。

最后整个项目的目录结构如下:

go-local-module
├── go.mod
├── main.go
└── mypackage
    └── hello.go