话不多说,看代码:
目录结构如下,顶层文件test.go,有两个子目录,pp和pd。
├── pd
│ └── pa.go
├── pp
│ └── pa.go
└── test.go
test.go的内容如下:
package main
import (
"fmt"
"pp"
pd "pd"
)
func main(){
fmt.Println(pa.I1)
fmt.Println(pd.I1)
}
两个目录下的pa.go的内容相同,定义了相同的包名:
package pa
var I1 int
func init() {
I1 = 100
}
看出来了没,import只是导入目录名,和包的名字没有任何关系。
结论:import只是导入目录名,相当于添加了PATH变量。