• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go学习笔记(1)--package

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

 

 

引入包有以下几种方式:

1. 最简单的方式引入一个包的方式是直接引入包,例如:

    import "fmt"

    import "os"

2. 也可以通过下面的方式将包一块引入,并写在括号内:

    import (

      "fmt"

      "os"

    )

通过上面的方式,可以引入系统包或第三方的包,下面重点介绍如何引入自定义的包和函数:

 一般我们将主程序放在src的main文件夹下(主程序中包含main函数,并将主程序的包名写为package main),将其他模块放在相应的文件夹下,例如下图所示

   

主函数在main.go文件中,主函数名也可以为其他,但必须包含main函数。在Go编程中,怎么引入自己编写的模块呢,例如在main.go中如何调用add.go、subtract.go或者是multiply.go中的文件。

add.go与subtract.go在cal文件夹下,所以这两个程序的包名为cal(package cal),multiply.go在multi文件夹下,所以程序的包名为multi(package multi)。如果main函数要调用add.go或者subtract.go中的函数,必须要引入包"cal"(import "cal")。要调用multiply.go中的函数,那就要引入包"multi",如果我们在程序中直接写import "multi",编译器会提示我们can not find package "multi"。因为我们的"multi"包在包"cal"下,所以我们要把包名写完整"cal/multi",下面就可以调用各个文件中的函数了。

Go中如果函数名的首字母大写,表示该函数是公有的,可以被其他程序调用,如果首字母小写,该函数就是是私有的,因此我们只能调用add.go、subtract.go或者multiply.go中的公有函数。具体调用如下图:

最后注意:文件名可以和该包名不一致,但文件中使用的包名必须要和该包名一致。

包的命名

go语言的包的命名,遵循简洁、小写、和go文件所在目录同名的原则,这样就便于我们引用,书写以及快速定位查找。对于在企业当中开发的程序而言,我们一般采用域名作为顶级包名的方式,这样就不用担心和其他开发者包名重复的问题了,比如公司的域名是`www.bboyHan.com`,那么开发的go程序都以`bboyHan.com`作为全路径中的最顶层部分,导入开发的工具包则可以写为:

package main
 
import "bboyHan.com/utils"

 

Main

当把一个go文件的包名声明为main时,就等于告诉go编译程序,这是一个可执行程序,那么go编译程序就会尝试把它编译为一个二进制的可执行文件。如果没有这个函数,程序就无法执行。

Go编译器又是如何去寻找各个文件、包之间的依赖关系而构建程序的呢?

环境变量GOROOT和GOPATH两个概念,这是两个定义路径的环境变量,GOROOT是安装Go的路径,比如 C:\go ;GOPATH是我们自己定义的开发者个人的工作空间,比如C:\workspace\src\bbboyHan。

编译器会使用我们设置的这两个路径,再加上import导入的相对全路径来查找磁盘上的包,比如我们导入的fmt包,编译器最终找到的是 C:\go\fmt 这个位置。对于包的查找,是有优先级的,编译器会优先在GOROOT里搜索,其次是GOPATH,一旦找到,就会马上停止搜索。如果最终都没找到,就会报编译异常了。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap