![5cc255db6446c80250b7ae12af01d788.png](https://i-blog.csdnimg.cn/blog_migrate/f7bc7f46b80c8424c762959d692ccb38.jpeg)
一、go mod 以及 Golang 自定义包
go mod init 初始化项目
![1cc2a60452ec12d82be70e9510e000de.png](https://i-blog.csdnimg.cn/blog_migrate/77f7742337bfb6a0bcd4da40c71de701.png)
新建一个 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()
函数。
二、参考教程
Golang教程_Go语言Beego入门实战教程-2020年5月录制 50讲之后是Beego教程_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com![4c728283e22f9adee4177b94131e7a60.png](https://i-blog.csdnimg.cn/blog_migrate/ea79f5bb06f8a43fc91d219cd6808c65.jpeg)