golang import自定义包

转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/68922334,建议读者阅读原文,确保获得完整的信息

1.初探

  刚开始接触go时,以为import自定义包与Java工程类似,在非GOPATH的路径中新建了一个go项目HelloGo,如下:

golang import自定义包_第1张图片

  接下来,利用beego的bee工具新建了另一个项目helloapi,如下:

golang import自定义包_第2张图片

  现在,想在helloapi项目中调用HelloGo项目的函数,通过import引入“HelloGo”,编辑器中一直提示无法引用,即使把HelloGo添加到左下角的GOPATH[helloapi]中,也没有效果。具体如下:

golang import自定义包_第3张图片

  问题出在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输出结果如下:

golang import自定义包_第4张图片

golang import自定义包_第5张图片

  输出结果显示,调用Say函数正常。不知大家注意到被调用函数Say的写法没有,函数名首字母是大写的,如果把其换成小写行不行?在A工程的router.go中新增了print函数,试一下:

func print() {
    fmt.Println("引用helloweb项目的print方法")
}

golang import自定义包_第6张图片

  B工程中重新引用A工程的print方法,但是引用不了。因此,在写可调用方法时,方法名首字母需要大写,这是需要注意的一点。

golang import自定义包_第7张图片

  由于接触Go不久,许多地方理解不一定到位,如有纰漏之处,请各位同学帮忙指出来,谢谢!

你可能感兴趣的:(Go,golang)