2 回答
TA贡献1852条经验 获得超7个赞
根据:
Go 程序员通常将所有 Go 代码保存在一个工作区中。
工作区包含许多版本控制存储库(例如,由 Git 管理)。
每个存储库包含一个或多个包。
每个包在一个目录中包含一个或多个 Go 源文件。
包目录的路径决定了它的导入路径。
TA贡献1946条经验 获得超3个赞
对于您的项目,我会做这样的事情:
$ tree
.
├── clientlib
│ └── lib.go
├── cmd
│ ├── client
│ │ └── main.go
│ └── server
│ └── main.go
├── go.mod
└── serverlib
└── lib.go
5 directories, 5 files
$ cat go.mod
module myproject.com
模块名称是任意的(可以是github.com/yourname/yourproject)。
对于服务器端:
$ cat serverlib/lib.go
package serverlib
import "fmt"
func Hello() {
fmt.Println("Hello from serverlib.Hello")
}
$ cat cmd/server/main.go
package main
import (
"fmt"
"myproject.com/serverlib"
)
func main() {
fmt.Println("Running server")
serverlib.Hello()
}
现在我们可以构建并运行它了:
$ go build -o server cmd/server/main.go
$ ./server
Running server
Hello from serverlib.Hello
客户端看起来是对称的。
变体:你可以用它们的实际二进制名称命名.go文件- 比如和. 每个包中的包仍然是,但随后无需显式创建具有文件名(没有 )的可执行文件。cmd/...server.goclient.gomaingo build.go-o
- 2 回答
- 0 关注
- 105 浏览
添加回答
举报