GoLand不同目录(包)方法调用

新手学go,跨目录调用方法是真的难,弄了好几天,几乎要放弃go了,在此演示一下如何跨目录(包)调用~

需求是main.go调用model包下mysql.go中Query方法,目录结构如下。

要点:

1.新建project时路径需要用域名形式(带符号‘.’),如test.cn,如果是普通的不带'点'的名字 GoLand引用时会报错。

2.设置中启用“Enable Go Modules”

3.在项目跟目录下执行go mod init

4.调用时带上项目名,如import "test.cn/model"

具体方法:

1) project名使用域名,可新建test.cn,或者在已经建好的目录上右键Refactor,把文件夹名和project名都改了。

2) Setting中设置启用go module(其他go path之类的无需设置,使用默认),路径:Go——Go Modules(vgo),勾选Enable Go Modules、不要勾选vendoring否则会有其他问题。

3) 在编辑器左下方找到“Terminal”选项卡,进入后执行 go mod init命令,提示creating new go.mod即为成功

4) 调用 import "test.cn/model",注意被调用的方法名首字母要大写哦!

两个文件代码如下:

main.go

package main

import (
	"fmt"
	"test.cn/model"
)

func main(){
	var result string
	result = model.Query()
	fmt.Println(result)
}

mysql.go

package model

func Query() string{
	return "张三"
}

  

执行结果如下

import (
"fmt"
"test.cn/model"
)

猜你喜欢

转载自www.cnblogs.com/wurijie/p/12006117.html