学习一门编程语言,除了学习语法,词法,以及写法等和编译器有关的特性(就是什么是语法错误)之外,需要对这个语言的结构有个清晰的认识,其中包括代码目录结构,源码文件,以及代码结构组织等。
那么Go语言结构在目录结构,源码文件,以及代码结构组织方面都是什么样子的呢。
1目录和源码
首先我门看目录和源码,从之前的Go语言教程我们知道,Go语言有工程目录,和GOPATH环境变量对应,工程目录结构有
bin存放编译后的可执行文件src存放实现源码,goget工具获取的web上的模块包都会放到这个目录下,并有对应的目录结构pkg存放编译后的库文件(分不同平台)Go语言的源码文件格式为.go格式。如hello.go,main.go。
2包管理
区别于C/C++,Go语言有包的概念,关键字package。Go语言的包管理主要有两种类型的包:main包和正常的模块化的包,模块包。
main包,即是包含主函数入口main方法的包模块包,即是业务模块的划分为不同的业务后定义的包包的定义声明:
都是统一的,在Go源码文件(.go文件)使用package进行声明,以下声明一个名字为package_name的包
模块包声明
packagepackage_name
main包声明
packagemain
包的引入和使用
importpackage_name
或者下面写法
import(package_name)
3包的代码结构
Go语言的结构,即main包和模块包的源文件代码结构,如下例子
模块包代码结构
hello包源码main包代码结构
main包源码Go语言的代码结构主要包括以下方面:
包的声明和定义包的引入和使用模块和方法的定义和使用程序的入口main方法的定义变量定义声明和使用语句表达式注释每个模块包的目录结构为:
$GOPATH/src/helloworld/hello.go
$GOPATH/src/helloworld/world.go
$GOPATH/src/helloworld/helloworld.go
......
每个包在目录结构中以目录树的方式进行划分,在包的引入时候需要带上从src往下的目录名字连成的目录结构串,如/github.