在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
结论:
测试1$GOPATH目录如下: ├─pkg app.go: package main import "m1" func main() { x1.Show() } k1.go: package x1 import "fmt" func Show(){ fmt.Println("show call") } 运行app.go:输出 show call。 测试2在以上的m1目录中,创建一个文件k2.go package x2 import "fmt" func Show(){ fmt.Println("show call") } 运行app.go提示:app.go:3:8: found packages x1 (k1.go) and x2 (k2.go) in D:\GoPath\src\m1 测试3k1和k2文件中,都通过package指定包名为x1。app.go中导入这两个目录,运行报错: .\app.go:4:8: x1 redeclared as imported package name 解决办法:导入的时候,将冲突的包名,重命名为另一个值即可,如以下k2pkg 测试4k1.go: package x1 import "fmt" var x1Data int = 1; func init(){ fmt.Println("x1 init call") x1Data = 2; } func ShowData(){ fmt.Println(x1Data) } func SetData(x int){ x1Data = x; } k2.go: package x2 import "m1" import "fmt" func init(){ fmt.Println("x2 init call") x1.SetData(333) } app.go: package main import _ "m2" import "m1" func main() { x1.ShowData() } > go run app.go
|
请发表评论