我想说的是,好家伙Golang的项目构建稍有些繁琐呀,用户体验来说没有python、java那么简单方便。 在Google搜索golang package自定义包方面的资料,发现搜索的结果不是很令人满意。不是说的很浅,就是说的很深,都伸到编译器层面了,蒙圈…


该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新. http://xiaorui.cc/2016/03/13/%E5%85%B3%E4%BA%8Egolang-package%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8C%85%E7%BB%93%E6%9E%84/

废话少说,直接开始聊Golang的package关键字与项目组织代码的用法。

Golang项目目录下一般有三个子目录:

– src存放源代码 pkg编译后生成的文件 bin编译后生成的可执行文件

一个目录下的.go文件里的package包名要一样,不然你import后会出现各种问题。package中的名称最好与目录名一样,这样在import的时候直接import目录名就好了。如果你的目录名跟包名package不一致,那么import 上层的目录就可以了。 

Golang要构建一个项目有这么几个点要注意. 
1.   首先要注意GOPATH环境,一定要确保你的项目在GOPATH内。
2.   尽量要让目录名跟package一致, 这样import引入自定义包时候不会出问题
3.   main是一个特殊的package名字,类似Java的main函数,GO的可执行程序必须在main package下

我们开始创建一个新的项目,并自定义几个包,在main里应用这些包,也可以让同一个package包的不同文件互相的调用函数方法。

运行main之前,我们需要把上面的包一个个的go build, go install


我们build源码后会发现在pkg里多了*.a的文件.

关于Golang自定义包引入就说这么多了,以后遇到新问题咱们再具体阐述一下。 

END.



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!

golang随机time.sleep的Duration问题

碰到一个Golang time.Sleep()的问题,这golang的time.sleep的功能貌似要比python ruby都要精细些,python的等待只是time.sleep()而已,而golang可以time.Sl...

阅读全文

Golang使用redigo实现redis的分布式锁

有些分布式场景会有分布式锁的需求,可以为了原子操作,也可能为了性能的原因,不管是分布式锁市面是有不少解决方法的,比如etcd、consul、zookeeper…...

阅读全文

golang使用yaml格式解析构建配置文件

还是那个golang监控agent那些事情,现在功能差不多了,唯独缺少信号处理及daemon服务化。 程序写的差不多了,但是这配置文件咋整? 难道把这些常亮要写在.g...

阅读全文