Intellij Idea配置GO调用本地包

go代码里使用import去导入包文件,比如常见的import fmt,这个命令实际上导入的就是GOROOT\src\fmt。但是当遇到需要导入本地包的时候,就需要配置一下。

我windows里的go脚本文件夹是E:\github\GoeveryDay,现在在这个文件夹里创建src\chentest\,然后在src\下面创建一个chenchen.go,在chentest\下创建testtest.go,如图:
抱光妹

chenchen.go的内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main

import (
"chentest"
"fmt"
)

func main(){
chentest.XXX()
var s1 chentest.Player
s1.Name = "iverson"
s1.Number = 3
s1.Team = "76ers"
fmt.Println(s1)
}

现在需要让chenchen.go能成功调用到chentest.go里的XXX函数,如果此时在chenchen.go里直接import testtest.go所在文件夹是会报错的,错误提示是Cannot resolve file ‘testtest.go所在文件夹’,这是因为程序在运行时先去GOROOT去搜索导入包,然后去GOPATH寻找导入包,最后在当前项目模块下寻找导入包,如果三个都找不到就会报错。

可见在idea中默认不支持直接导入本地Golang包,那么解决该问题的关键是明白GOROOT和GOPATH的作用,根据官方文档的解释GOPATH的主要作用是存放文件以便Golang程序编译时可以进行搜索引用,GOPATH可以设置一个值或多个值,多个值之间以分号隔开。很明显只要我们将本地Golang加入到GOPATH中即可在IDEA中正常运行该程序。

那么先File--Settings--Languages & Frameworks--Go--GOPATH,在project GOPATH里添加E:\github\GoeveryDay这个总的文件路径,如图:
抱光妹

apply保存即可,记住这里不能填E:\github\GoeveryDay\src,因为系统会自带src目录,如图:
抱光妹

此时再执行就得到正确结果了!如图:
抱光妹

但是要注意,要使用本地包函数、结构体、结构体的成员,首字母必须是大写!如果首字母是小写是私有的,即不可见的,只能在同一个包里使用。

感谢您请我喝咖啡~O(∩_∩)O,如果要联系请直接发我邮箱chenx1242@163.com,我会回复你的
-------------本文结束感谢您的阅读-------------