今天测试的时候引入本地包总是报错,之前有过一次这样的报错忘了怎么解决了,这次记录下来怎么引入本地包。
下面图中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