工程管理:
同級目錄,包名一致;不同級目錄,包名不同。
同級目錄運行多個文件
同一個文件夾下:
-hello
-main.go
-test.go
main.go
package main
import "fmt"
func main() {
fmt.Println("main")
test111()
}
test.go
package main
import "fmt"
func test111() {
fmt.Println("test111")
}
main 和 test 的 package 都是 main:
直接:go run main.go ,報錯:
undefined: test111
執行:go build .\main.go .\test.go ,執行編譯后的 main.exe ,正常運行
執行:go run main.go test.go,正常運行
所以,第一種運行方式,編譯器並不把兩個文件當一個包運行。
將 hello文件夾,設置成工程目錄,也可以運行
不同級文件:
引用函數:導入相關包,函數名首字母大寫,才能被別的包引用。
-hello
-users
-user.go
main.go
main.go
import (
"fmt"
"users" // 導入users包
)
func main() {
fmt.Println("main")
users.Usering()
}
user.go
package users
import "fmt"
func Usering() { // 函數名首字母大寫,才能被別的包引用。
fmt.Println("登錄成功")
}
注意:go找包:到GOPATH環境變量中找包,或GOROOT。如果不設置就找不到包。
go install // src下執行,bin文件夾中會有src可執行文件。