Go 使用自定义包(package)

时间:2023-01-15 17:43:24

 

自定义包的分为两种:

1.同目录下的包;

2.不同目录下的包;

*经测试,同目录下是不可以用不同包的文件的

 

 

 

 

同目录下的包:

  不同文件中的变量和函数都可以直接访问

 

 

 

 

不同目录下的包:

  1.把要在自定义包外部使用的变量或者函数的首字母改为大写!!!,这样外部可以访问他们;

 

 

  2.如果项目目录不在GOPATH环境变量设置的路径里,需要把项目移到GOPATH路径里,或者GOPATH中把项目路径设置进去;(GOPATH可设置多个)

    如图,我配置了我这个项目要用的GOPATH:

         Go 使用自定义包(package)

 

 

 

  3.import 时,比如现在我要使用DBHandler这个包,只需要在main.go的import中写上 "./DBHandler" 就导入成功了;

      

      Go 使用自定义包(package)

   

   DBHandler包在文件管理器中的位置,如图所示:

 

      Go 使用自定义包(package)

 

 

 

 

  4.开始使用自定义包中的函数,需要注明包名,然后需要在包外部访问的函数和变量都要以大写开头,如图所示(左为main.go,右为DBHandler包中的内容):

      Go 使用自定义包(package)

 

 

  5.构建和安装你的自定义包,如图所示,在src目录下,也就是DBHandler包所在目录打开终端运行go build+包名 和 go install+包名,如果没有报错就说明构建和安装成功了:

      Go 使用自定义包(package)

 

 

  6.查看自定义包的.a生成文件,如图所示:

      Go 使用自定义包(package)

 

 

 

 

关于import,有以下注意事项:

(1)在使用第三方包的时候,当源码和.a均已安装的情况下,编译器链接的是源码。


(2)到这里我们明白了所谓的使用第三方包源码,实际上是链接了以该最新源码编译的临时目录下的.a文件而已。


(3)import后面的最后一个元素应该是路径,就是目录,并非包名。

 

 

 

 

感谢以下文章的作者:

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/

http://www.golangtc.com/t/555464c2421aa9519000005e

http://www.kuqin.com/shuoit/20150310/345120.html

 

 


 

转载请注明出处http://www.cnblogs.com/ficow/p/6537363.html,谢谢!