Go 导入包的方式

常见的方式

package main
import (
	"fmt"
)

func main() {
	fmt.Println("hello")
}

这个是从 GOROOT目录去加载模块

另外我们还可以安装相对路径或者绝对路径去加载

import (
	"./models"  #相对路径引入,不太建议
	"goweb/models" #绝对路径引入
)

几个特殊的方式

1. .

package main
import (
	. "fmt"
)

func main() {
	Println("vilay")
}

这种方式引入区别于调用包函数的时候,省略包名 原来是fmt.Println("vilay") 现在只要这样就可以了 Println("vilay")

2. 别名

package main
import (
	f "fmt"
)

func main() {
	f.Println("vilay")
}

这种方式引入区别于调用包函数的时候,省略包名 原来是fmt.Println("vilay") 现在只要这样就可以了 f.Println("vilay")

3. _

package main
import (
	_ "github.com/go-sql-driver/mysql"
)

_操作其实是引入该包,而不直接使用包里面的函数,而是调用了该包里面的 init 函数

笔记

比如现在有两个文件

app/utils/setting.go
app/utils/database.go

两个包名必须一致,否则引入的时候会有问题。

另外,包的引入问题

app/utils/setting.go  //package setting

在引入的时候,只需要这样

import "app/utils"  //引入到文件目录就可以了,不需要再指到包名

所以,如果是mvc模式的,控制器里面每个控制器最好都是独立的文件夹,这样包名不会冲突,方法名也不会冲突。