golang的包
1.0、参考

The Go Programming Language Specification - Packages

1.1、包的作用

用来组织源文件

类似于命令空间

1.2、包与文件夹的关系

包名源文件所在的文件夹名没有必然的关系。

同一个文件夹下的源文件必须属于同一个

1.3、申明包

一个源文件必须申明他自己属于哪个包。

申明包的语法如下:

package PACKAGE-NAME

示例:

package http
package main
1.4、导入包

导入包的语法如下:

import "relative PATH-of-PACKAGE"

示例:

import "fmt"
import "net/http"

import(
    "fmt"
    "net/http"
)

这里特别注意的是:import后面跟的是包所在的路径的相对路径,而不是包名。而且相对路径必须要用双引号括起来。

相对路径相对的是$GOROOT/src或者$GOPATH/src

导入包的时候,先在$GOROOT/src下查找是否存在,如果不存在,就在$GOPATH/src下查找,如果没有找到就会报错。

1.5、main包

只有被申明为main的包,才能被编译为可执行文件

main包必须实现如下签名的main函数

func main() {}

示例:

package main

import "fmt"

func main() {
    fmt.Println("Hello golang.")
}

编译并运行:

go run ./hello.go
1.6、Go Toolchain内置的包
1.7、第三方模块提供的包