怎么在golang中使用import自定义包
今天就跟大家聊聊有关怎么在golang中使用import自定义包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
golang适合做什么
golang可以做服务器端开发,但golang很适合做日志处理、数据打包、虚拟机处理、数据库代理等工作。在网络编程方面,它还广泛应用于web应用、API应用等领域。
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/workspacelocalhost:helloapi loongshawn$
因此,要想引入自定义的包,需要自定义包的路径为GOPATH路径中。
2.操作
在工程A中创建方法Say,如下代码:
package routersimport ( "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不久,许多地方理解不一定到位,如有纰漏之处,请各位同学帮忙指出来,谢谢!
补充:GoLang 自定义包总结
大概总结一下 GoLang 自定义包,并不是需要发布的包,只是一次在代码工作路径下调用自定义包的一个尝试。
今天踩坑就是,以为 import 的时候要填写文件夹里面的 package 的名称,比如之前我是这么写的:
import "./pack/p"
这样无法通过编译,这就是本文的由来了
首先,工作的目录结构是这样的:
.├── main.go└── pack └── test.go1 directory, 2 files
其中,各个文件代码为:
// main.gopackage mainimport ( "fmt" "./pack")func main() { s := p.Sayhello() fmt.Println(s)}
// pack/test.gopackage pfunc Sayhello() string { return "Hello!"}
在主目录下通过 go run 或者 go build 的方法运行或编译,都是可以通过的。
看完上述内容,你们对怎么在golang中使用import自定义包有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网行业资讯频道,感谢大家的支持。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341