mkdir learngo
cd learngo && mkdir pkg pkg2
cd pkg
touch pkg1.go pkg2.go
cd ..
touch pkg21.go pkg22.go
cd ../..
go mode init learngo
目錄結構
learngo-[
- pkg-[
pkg1.go
pkg2.go
]
- pkg2-[
pkg21.go
pkg22.go
]
go.mod
main.go
]
// pkg1.go
package pkg
import "fmt"
func A() {
fmt.Println(454654564656)
}
// pkg2.go
package pkg
import "fmt"
func B() {
fmt.Println(454654564656)
}
// pkg1.go
package pkg
import "fmt"
func A() {
fmt.Println(454654564656)
}
// pkg21.go
package pkg2
import "fmt"
func B() {
fmt.Println(454654564656)
}
// pkg22.go
package pkg2
import "fmt"
func B() {
fmt.Println(454654564656)
}
// go.mod
module learngo
go 1.14
// main.go
package main
import (
"fmt"
pkgaaa "learngo/pkg"
pkgbbb "learngo/pkg2"
)
func main() {
pkgaaa.A()
pkgaaa.B()
pkgbbb.A()
pkgbbb.B()
}
結論:import只是匯入目錄名,相當於新增了PATH變數,而和目錄下的包名沒有任何關係,但是同一目錄下的包名必須相同
本作品採用《CC 協議》,轉載必須註明作者和本文連結