在 Go 語(yǔ)言中凌外,代碼組織的形式是用包來(lái)組織,那么烟馅,我們有如下項(xiàng)目的目錄結(jié)構(gòu)
─project
├───core
│ └───core.go
├───main.go
一般地说庭,建議包名和文件夾的名稱(chēng)保持一致,避免為使用者帶來(lái)不必要的麻煩郑趁。
如在 core.go 中的代碼為:
package core
func Run() {}
那么刊驴,這個(gè)包名就是 core ,我們?cè)?main.go 的調(diào)用方式就為:
package main
import "core"
func main() {
core.Run()
}
但是穿撮,當(dāng)我們定義的包名和文件夾名不一致時(shí)缺脉,如將 core.go 的代碼修改為:
package util
func Run() {}
此時(shí),core.go 的包名變?yōu)榱?util , 那么在 main.go 的調(diào)用也要相應(yīng)的做改變:
package main
import "core"
func main() {
util.Run()
}
那么悦穿,可以發(fā)現(xiàn)攻礼,import 導(dǎo)入的只是路徑,實(shí)際調(diào)用還是使用包名調(diào)用栗柒,但不推薦包名和文件夾名不一致礁扮。
還有一種情況是,當(dāng)一個(gè)文件夾下只能有一個(gè)包瞬沦,如 core 文件夾下有多個(gè)文件時(shí)太伊,不能使用多個(gè)包名,這點(diǎn)在 Go 語(yǔ)言中是不允許的