Go语言工做空间:编译工具对源码目录有严格要求,每一个工做空间 (workspace) 必须由bin、pkg、src三个目录组成。python
src ---- 项目源码目录,里面每个子目录,就是一个包,包内是Go语言的源码文件。
pkg ---- Go语言编译的.a 中间文件存放目录,可自动生成。
bin ---- Go语言编译可执行文件存放目录,可自动生成。git
包是结构化代码的一种方式:每一个程序都由包的概念组成,可使用自身的包或者从其它包中导入内容。编程
如同其它一些编程语言中的类库或命名空间的概念,每一个Go文件都属于且仅属于一个包。一个包能够由许多以.go为扩展名的源文件组成,所以文件名和包名通常来讲都是不相同的。编程语言
包声明 "package + 包名" ,必须在源文件中非注释的第一行指明这个文件属于哪一个包。
如:package main。package main表示一个可独立执行的程序,每一个Go应用程序都包含一个名为 main 的包。函数
同一个包(package)下面,能够有很是多的不一样文件,只要每一个文件的头部都有相同name就能够,如 "package oldboy" 。文件夹名字能够和这个package名称不一致。工具
在Go的安装文件里包含了一些能够直接使用的包,即标准库。
Go语言标准库包,覆盖了几乎全部的基础库,提供了丰富普遍的功能特性。
标准库的内容还可能继续增长,你们能够经过在线查阅库API或使用godoc(包含在Go发布包中)来获取最新信息以及全面了解每一个包所具有的功能。spa
经过"go get + 完整包名"保存下载第三方库。code
在执行go get 命令以前,确保你的电脑配置了环境变量GOPATH,而且安装git。blog
在Go语言中根据首字母的大小写来肯定能够访问的权限。若是首字母大写,则能够被其余的包访问;若是首字母小写,则只能在本包中使用。该规则适用于全局变量、全局常量、类型、结构字段、函数、方法等。get
能够简单的理解成,首字母大写是公有的,首字母小写是私有的。
在导入包以后,你只能访问包所导出的名字,任何未导出的名字是不能被包外的代码访问的。
使用包成员前,必须先用import关键字导入,但不能造成导入循环。
import用法:
import "fmt"
import "./test"
import "oldboy/python"
导入fmt,并给他启别名f
import f "fmt"
import . "fmt"
"import _"
import _ "fmt"
表示不使用该包,而是只是使用该包的init函数,并不显示的使用该包的其余内容。
这种形式的import,当import时就执行了fmt包中的init函数,而不可以使用该包的其余函数。
注意:未使用的导入包,会被编译器视为错误 (不包括 "import _"
)。实例以下:
package main import ( "fmt" ) func main() { }
编译错误:
./main.go:4:2: imported and not used: "fmt"