转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/68922334,建议读者阅读原文,确保获得完整的信息
1.初探
刚开始接触go时,以为import自定义包与Java工程类似,在非GOPATH的路径中新建了一个go项目HelloGo,如下:
接下来,利用beego的bee工具新建了另一个项目helloapi,如下:
现在,想在helloapi项目中调用HelloGo项目的函数,通过import引入“HelloGo”,编辑器中一直提示无法引用,即使把HelloGo添加到左下角的GOPATH[helloapi]中,也没有效果。具体如下:
问题出在HelloGo项目的路径上,因为其不在系统定义的GOPATH路径下,查看下系统定义的GOPATH:
localhost:helloapi loongshawn$ echo $GOPATH
/Users/loongshawn/Documents/go/workspace
localhost:helloapi loongshawn$
因此,要想引入自定义的包,需要自定义包的路径为GOPATH路径中。
2.操作
在工程A中创建方法Say,如下代码:
package routers
import (
"fmt"
)
func Say() {
fmt.Println("引用helloweb项目的Say方法")
}
在工程B中引入工程A,并调用A工程中的Say函数,同时启动工程A,Console输出结果如下:
输出结果显示,调用Say函数正常。不知大家注意到被调用函数Say的写法没有,函数名首字母是大写的,如果把其换成小写行不行?在A工程的router.go中新增了print函数,试一下:
func print() {
fmt.Println("引用helloweb项目的print方法")
}
B工程中重新引用A工程的print方法,但是引用不了。因此,在写可调用方法时,方法名首字母需要大写,这是需要注意的一点。
由于接触Go不久,许多地方理解不一定到位,如有纰漏之处,请各位同学帮忙指出来,谢谢!