Golang 如何创建模块
从v1.11开始,Go已经支持按照这里提供的规范的版本化模块,最初的原型为 vgo 。Go中引入模块的概念是为了处理Go应用程序中的依赖关系问题。多个包被收集并组合成一个模块,存储在一个以go.mod为根的树状结构文件中。
注意: 升级您系统中的Go版本以与Go模块一起工作。
现在,让我们看看如何在Golang中创建模块。首先创建一个目录,然后使用以下命令进入该目录:
mkdir go_modules
cd go_modules
使用以下命令将当前目录初始化为模块的根目录,以便我们可以管理依赖关系:
go mod init go_modules
由于我们是在$GOPATH/src模块之外工作,因此我们需要在初始化期间显式指定模块的名称。
我们现在可以检查是否已创建 go.mod 文件,如果存在,则检查其内容。
下一步是使用以下代码创建一个简单的Go文件:
//文件所在的当前模块
package gfg_go
import("fmt")
func initialiser() string {
fmt.Printf("In gfg_go package. \n")
//返回当前模块和包名称
return_string := "Module : go_modules."
return return_string
}
为了测试上面的函数,我们使用以下代码创建另一个Go文件:
package gfg_go
import (
"testing"
"fmt"
"strings"
)
//用于测试原始go程序是否工作的函数
func TestFunction(test *testing.T){
test_string1 := "go_modules"
//从上一个go文件中调用函数
res := strings.Split(initialiser(), ":")
//在比较之前删除空格和行末标点
test_string2 := strings.Trim(res[1], " .")
if test_string1 == test_string2 {
fmt.Printf("Successful!\n")
} else {
//如果字符串不匹配,则打印错误消息
test.Errorf("Error!\n")
}
}
运行go test命令后,我们应该看到测试构建已通过!
向Go模块添加依赖关系
要向我们的模块添加依赖项,我们将使用 require() 函数以及正在使用的模块的版本:
module go_modules
go 1.14
require github.com/rs/zerolog v1.14.3
我们包中的所有依赖项如下所示:
我们目录中的所有文件如下:
注意: go命令使用go.sum文件确保将来下载这些模块时检索相同的位,并且您的项目依赖的模块不会意外更改。