一、go mod 以及 Golang 自定義包
go mod init 初始化項目
新建一個 demo 文件夾,在 demo 文件夾下新建 go.mod
文件和 main.go
文件,再在 demo 文件夾下新建一個 calc 文件夾,在 calc 文件夾下新建一個 calc.go
文件。
calc.go 代碼:
package calc // package 一定要放在最上面
func Add(x, y int) int { // 首字母大寫表示公有方法
return x + y
}
func Sub(x, y int) int {
return x - y
}
main.go 代碼:
package main
import (
"fmt"
"demo/calc" // 使用自定義包
)
func main() {
sum := calc.Add(10, 2)
fmt.Println(sum)
}
一個文件夾下直接包含的文件只能歸屬於一個 package,同樣一個 package 的文件不能在多個文件夾下。
因此 calc.go
只屬於 calc package。
包前面加下划線空格表示匿名引入包,如果不使用這個包,則不會報錯。
import (
"fmt"
_ "demo/calc" // 使用自定義包
)
main 包中,init
函數優先於 main
函數。
最后被導入的包會最先初始化並調用其 init()
函數。