工程管理:
同级目录,包名一致;不同级目录,包名不同。
同级目录运行多个文件
同一个文件夹下:
-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 . est.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可执行文件。