Overview
- 一个文件夹就是一个包
- 一个文件夹内的多个文件都属于这个包
- main包
- main包是特殊的包,执行一个go程序是通过main包来执行的,若没有main包,则go build -o 生产的则只是一个包文件(供其他程序引用使用)
- 同一个文件夹(包)内的文件是可以直接引用的,不同文件夹(包)内的文件引用需要先导入该包然后才可以引用
- 文件夹和包名虽然可以不同,但同一个文件夹下的所有包名必须相同,而且建议文件夹和包名起名一致
Description
1) 创建一个main包
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
Summary:虽然文件夹名称和包名不一致,但是也是可以的,此处文件夹名称为Jeremy,包名为main, 建议文件夹名称为main
2)在同一个文件夹(包)下创建另一个功能项目,然后引用该功能项目
package main
import "fmt"
func NewFunction() {
fmt.Println("New Function")
}
package main
import "fmt"
func main() {
fmt.Println("Hello World")
NewFunction()
}
执行go build生成main.exe,执行main.exe
或者执行go run main.go NewFunction.go
Summary:
a.可以看到,在同一个文件夹下创建的文件都会默认属于同一个包(此处是main包),都属于同一个包的项目,在引用的时候无需导入该包,直接调用就可以
b.函数如果是大写,意味着其他包都可以调用,如果是小写,那么就只能在该包中使用
3)在一个文件夹(包)下创建另一个文件夹(包),一个包调用另一个包的功能
-
3.1)在Jeremy目录下创建一个Browser文件夹,然后在这个文件夹下创建2个功能,分别是Baidu和Google
package Browser
import "fmt"
func Baidu() {
fmt.Println("www.baidu.com")
}
package Browser
import "fmt"
func Google() {
fmt.Println("www.google.com")
}
可以看到包名会自动填写为文件夹的名称Browser
3.2)main包引用该Browser包中的功能
package main
import (
"fmt"
"main/Browser"
)
func main() {
fmt.Println("Hello World")
NewFunction()
Browser.Baidu()
Browser.Google()
}
执行go build,./main.exe,或
结果:
Summary:
a. 引用其他包的时候首先要导入该包import path
b. 调用函数的时候是包名.函数名
此章节后文件夹都以包名叙述