The Go Programming Language Specification - Packages
包
用来组织源文件
。
包
类似于命令空间
。
包名
与源文件
所在的文件夹名
没有必然的关系。
同一个文件夹下的源文件
必须属于同一个包
一个源文件
必须申明他自己属于哪个包。
申明包的语法如下:
package PACKAGE-NAME
示例:
package http
package main
导入包的语法如下:
import "relative PATH-of-PACKAGE"
示例:
import "fmt"
import "net/http"
import(
"fmt"
"net/http"
)
这里特别注意的是:import
后面跟的是包所在的路径的相对路径
,而不是包名
。而且相对路径
必须要用双引号括起来。
相对路径
相对的是$GOROOT/src
或者$GOPATH/src
导入包的时候,先在$GOROOT/src
下查找是否存在,如果不存在,就在$GOPATH/src
下查找,如果没有找到就会报错。
只有被申明为main
的包,才能被编译为可执行文件
。
main包
必须实现如下签名的main函数
:
func main() {}
示例:
package main
import "fmt"
func main() {
fmt.Println("Hello golang.")
}
编译并运行:
go run ./hello.go