先看一個示例:
1、目錄結構
bin
pkg
src
pk1
pk2
function1.go
function2.go
index.go
2、function1.go 文件內容:
package pk3 func Function_test3() { println("function_test3") }
3、function2.go 文件內容:
package pk3 func Function_test4() { println("function_test4") }
4、index.go 文件內容
package main import "pk1/pk2" func main() { pk3.Function_test4() }
5、運行 index.go,輸出:
function_test4
得出以下結論:
1、import 導入的參數是路徑,而非包名。
2、盡管習慣將包名和目錄名保證一致,但這不是強制規定;
3、在代碼中引用包成員時,使用包名而非目錄名;
4、同一目錄下,所有源文件必須使用相同的包名稱(因為導入時使用絕對路徑,所以在搜索路徑下,包必須有唯一路徑,但無須是唯一名字);
5、至於文件名,更沒啥限制(擴展名為.go);