一、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()
函数。