Golang 可以把包名去掉吗?
Golang不可以把包名去掉,包名是一种类似命名空间的管理和组织代码的方式,而Golang的包有两种类型,一种是“main”包,该包的可以有唯一的一个“main”函数,这个函数也是程序的入口,另外一种就是非“main”包。
简单的例子
➜ golang echo $GOPATH
/Users/master/golang
➜ golang pwd
/Users/master/golang
➜ golang tree
.
├── bin
├── pkg
└── src
└── demo
└── main.go
4 directories, 1 file
➜ demo cat main.go
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
}
➜ demo go run main.go
hello world
从上面的目录结构可以看出,GOPATH为 /Users/master/golang 。在 src 内创建了一个项目 demo。demo 里有一个 main.go 文件。main.go 的第一行声明了这是一个 main 包,因此可以定义一个 main 函数。使用 go run 可以编译并运行 main.go。
自定义包(package )
go 使用 package 来管理源文件。package 必须在一个文件夹内,且一个文件夹内也只能有一个package,但是一个文件夹可以有多个文件。下面自定义一个 package。
➜ demo tree
.
├── main.go
└── service
└── http.go
1 directory, 2 files
➜ demo cat service/http.go
package api
import "fmt"
func HandleReq(){
fmt.Println("api - http.go Handle Request")
}
➜ demo cat main.go
package main
import (
"fmt"
"./service"
)
func main() {
fmt.Println("hello world")
api.HandleReq()
}