Bootstrap

golang 如何正确导入本地包

今天测试的时候引入本地包总是报错,之前有过一次这样的报错忘了怎么解决了,这次记录下来怎么引入本地包。
下面图中funcinit目录下有个main.go文件,有个utils的目录目录下有个utils.go的文件,想在main.go中引用utils.go
在这里插入图片描述
main.go中代码如下:

package main

import (
	"fmt"

	"funcinit/utils"
)

var age = test()

//为了看到全局变量是先初始化的,我们先写个函数
func test() int {
	fmt.Println("test()")
	return 90
}

//init函数通常用在初始化的时候
func init() {
	fmt.Println("init()...")
}

func main() {
	fmt.Println("main()...", age)
	fmt.Println("age=", utils.Age, "name=", utils.Name)
}

utils.go中代码如下:

package utils

var Age = 100
var Name = "Tom~"

//Age和Nname是全局变量,希望在main.go中引用,希望用变量之前变量先被初始化

//init完成初始化工作
func Init() {
	Age = 100
	Name = "Tom~"
}

需要gomod管理包

PS C:\goproject\src\go_code\chapter06\funcinit> ls


    目录: C:\goproject\src\go_code\chapter06\funcinit


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2022/4/25     21:56                utils
-a----         2022/4/25     22:01            405 main.go
----这里执行在funcinit目录下执行go mod init funcinit生成 go.mod文件
PS C:\goproject\src\go_code\chapter06\funcinit> go mod init funcinit
go: creating new go.mod: module funcinit
go: to add module requirements and sums:
        go mod tidy
PS C:\goproject\src\go_code\chapter06\funcinit> ls


    目录: C:\goproject\src\go_code\chapter06\funcinit


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         2022/4/25     21:56                utils
-a----         2022/4/25     22:02             25 go.mod
-a----         2022/4/25     22:01            405 main.go

---执行成功
PS C:\goproject\src\go_code\chapter06\funcinit> go run main.go
test()
init()...
main()... 90
age= 100 name= Tom~

golang 版本go1.16.13
在1.11以后用go mod 管理包
需要 set GO111MODULE=on

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;