- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第5章源代码组织与管理Go语言的包
01包的概念
包的概念Go语言的包采用目录树的组织形式,一般包的名称就是其源文件所在的目录名,虽然Go并不强制包名必须与其所在的目录同名,但还是建议读者在开发项目时取相同的名字,这样可使项目结构更清晰。此外,在给包取名时还应遵守下面两个习惯:(1)包名一般全是小写,并尽可能地用一个有意义的简短命名。(2)实际工作中,包一般放到公司的域名目录下,这样既能保证包名的唯一性,又便于代码共享,比如一家名为easybooks公司所开发项目的包一般放到“src\\项目名”目录下。
02包的工作目录1.Go环境变量2.目录结构
包的工作目录1.Go环境变量在Go编程环境中,包的工作目录与几个重要的环境变量息息相关,先介绍一下。(1)$GOROOT这是Go语言安装的根目录。在Windows下安装包会自动设置,默认是C:\ProgramFiles\Go,如果不是安装在这个默认目录,则必须显式地设置$GOROOT环境变量。(2)$GOPATH这是Go程序开发的工作目录,类似于Java语言的工作区(Workspace)。Windows下默认是C:\Users\用户名\go,其中“用户名”为操作系统当前的登录用户名。(3)$GOBIN这是带有main函数的源程序执行goinstall命令时生成的可执行程序安装目录,默认是$GOPATH\bin。如果想在任何路径执行安装的程序,可以将$GOBIN添加到Windows系统环境变量Path中。
包的工作目录(4)$GOOS与$GOARCH$GOOS用来设置目标操作系统,$GOARCH用来设置目标平台的CPU体系结构。这两个变量主要用在Go程序跨平台的交叉编译中,一般不用设置。以管理员身份打开Windows命令行,用goenv命令可查看Go编程环境当前各变量的值,如图。
包的工作目录2.目录结构$GOPATH环境变量所指定的目录就是Go程序包默认的工作目录。在用传统方式开发Go项目时,会在工作目录下创建3个子目录,如图。
包的工作目录(1)src目录包含了组成各种包的源代码。通常在src下的第一层是根目录(一般是公司域名),根目录下才是各个项目的目录,项目目录下可以是其源代码文件及各种包,这是一种推荐的代码组织结构,例如:$GOPATH\src\\grpc其中,“$GOPATH\src\”就是根目录,“grpc”则是具体的项目目录,而grpc内则是该项目的源代码文件和包。(2)pkg目录用于存放各包编译生成的类库。(3)bin目录用于存放包编译或安装后生成的可执行(.exe)文件。其中,src目录必须由用户自己建立用于包含所有的源代码,这是Go的强制规定,而另两个(pkg和bin)目录则无须手动创建,必要时Go命令行工具在构建项目的过程中会自动创建它们。
03包的使用1.导入包2.引用路径3.包的加载4.包的作用域
包的使用1.导入包用import语句导入包,有4种引用方式,这里以Go的fmt标准库(包)为例说明如下。(1)标准方式importfmt这是最常用的一种方式,导入后可以用“fmt.”作为前缀引用包内的可导出元素,如:fmt.Println(Hello,我爱Go语言!@easybooks)(2)别名方式importsayfmt相当于给包fmt起了个别名say,用“say.”代替标准的“fmt.”作为前缀引用包内元素,语句写成:say.Println(Hello,我爱Go语言!@easybooks)(3)省略方式import.fmt这相当于把包fmt的命名空间与当前程序的命名空间直接合并,合并后就可不用前缀直接引用fmt包内元素,简写成:Println(Hello,我爱Go语言!@easybooks)
包的使用(4)仅执行包初始化函数当使用标准方式导入了包但是代码中却没有使用此包,编译器会报错,可改用“import_包名”这种方式导入包,它仅执行包的init初始化函数,即使包没有初始化函数也不会引发编译器报错,如:packagemainimport_fmtfuncmain(){ //无代码}
包的使用2.引用路径Go语言所有内置标准包的源码都位于$GOROOT\src下,可以直接引用。而自定义或第三方包的源码则必须放到$GOPATH\src目录下才能被引用。引用一个包可以用全路径或相对路径,写法如下。(1)全路径全路径就是包的根路径($GOROOT\src或$GOPATH\src)后面包源码的完整路径,例如,下面这几个包的引用路径:import/MyBmi/bmiimport/grpc/peerimportdatabase/sql/driver其中,bmi是自定义的包,其源码保存在$GOPATH\src\\MyBmi\bmi目
您可能关注的文档
- Go语言程序设计及实例 课件 第1章 Go语言及编程环境.pptx
- Go语言程序设计及实例 课件 第2章 Go语言基础.pptx
- Go语言程序设计及实例 课件 第3章 Go语言面向对象编程.pptx
- Go语言程序设计及实例 课件 第4章 Go语言并发编程.pptx
- Go语言程序设计及实例 课件 第6章 文件与数据库操作.pptx
- Go语言程序设计及实例 课件 第7章 Go网络编程.pptx
- Go语言程序设计及实例 课件 第8章 Go语言微服务开发入门.pptx
- Unit2LookingintotheFutureReadingandThinking课件-高中英语人教版选择性.pptx
- Module4Unit11Children'sDayPeriod3(课件)-沪教牛津版(深圳用)英语四年级下册.pptx
- Unit5Reading1课件-沪教版英语八年级下册.pptx
- 2018年普通高等学校招生全国统一模拟考试理综-化学试题扫描版含答案.doc
- Unit6SunshineforallStudyskills课件-牛津译林版八年级英语下册.pptx
- Unit3After-schoolactivitiesLesson2Avisittoafarm课件冀教版(2024)英语七年级下册.pptx
- 第13课《最后一次讲演》课件-统编版语文八年级下册.pptx
- Unit2BesportybehealthyReading课件-牛津译林版(2020)高中英语.pptx
- Unit2Differentfamilies第三课时(课件)-人教PEP版(2024)英语三年级上册.pptx
- 服务业的区位选择教学课件-湘教版高中地理必修二.pptx
- 城镇化进程及其影响课件高中地理湘教版(2019).pptx
- 国家海洋权益与海洋发展战略课件高一地理中图版必修2.pptx
- 工程变更管理细则.doc
文档评论(0)