import后面接的是目录的名字,而不是所谓包的名字,并且如果一个目录下面还有目录的话都必须要写进去,比如:
import "MyPackage" import "MyPackage/MyInnerPackage"
在这里讲明白了import后面接的是目录名而不是文件名更不是所谓的包名,那么一个目录下面的文件可以是多个包的吗?不可以
package main import "MyPackage" import "MyPackage/MyInnerPackage" import "OtherPackage" func main() { MyPackage.MyFunc(); MyPackage.MyFunc(); MyInnerPackage.MyInnerFunc() OtherPackages.MyOtherFunc() }
src目录下面有两个目录,分别是MyPackage和OtherPackage
package MyPackage import "fmt" func MyFunc() { fmt.Println("MyFunc"); }
package MyPackage import "fmt" func MyFunc2() { fmt.Println("MyFunc2") }
package MyInnerPackage import "fmt" func MyInnerFunc(){ fmt.Println("MyInnerPackage") }
package OtherPackages import "fmt" func MyOtherFunc() { fmt.Println("OtherPackages->MyOtherFunc"); }
go语言中有个变态的地方就是你要暴露方法或者属性名出来必须首字母大写
In Go, a name is exported if it begins with a capital letter.
有疑问加站长微信联系(非本文作者)