項目結構:
# 檔案Tree
project
-/bin
-/pkg
-/src
-main.go
-/test
-test1.go
-test2.go
main.go
package main
import (
"fmt"
"./test"
)
func main() {
fmt.Print("test1\n")
test.Ojbk1()
fmt.Print("test2\n")
test.Ojbk2("okokok")
}
test/test1.go
package test
import "fmt"
func Ojbk1() {
fmt.Println("This is test1 , done ")
}
test/test2.go
package test
import "fmt"
func Ojbk2(info) {
fmt.Println(info)
}
1. import語句使用的是 檔案夾的名稱
- 上面的import後面的參數對應的就是檔案夾test
- 導入方式:import(./test)
2. 檔案夾的名稱和package的名稱不一定相同
上面的例子中,檔案夾是test,package名稱是test(也可以寫别的名稱)。
3. 調用自定義包使用 package名稱.函數名
的方式
package名稱.函數名
例如上面使用的test.Ojkb1()
4. 自定義包的調用和檔案名沒有關系
例如上面的test1.go檔案,如果改成test_xxxx.go,程式也能正常編譯。編譯系統會自動查找test檔案夾下的所有檔案,在其中尋找package test,然後選擇Ojbk1函數。