2 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
根據(jù):
Go 程序員通常將所有 Go 代碼保存在一個(gè)工作區(qū)中。
工作區(qū)包含許多版本控制存儲(chǔ)庫(kù)(例如,由 Git 管理)。
每個(gè)存儲(chǔ)庫(kù)包含一個(gè)或多個(gè)包。
每個(gè)包在一個(gè)目錄中包含一個(gè)或多個(gè) Go 源文件。
包目錄的路徑?jīng)Q定了它的導(dǎo)入路徑。

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
對(duì)于您的項(xiàng)目,我會(huì)做這樣的事情:
$ 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)。
對(duì)于服務(wù)器端:
$ 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()
}
現(xiàn)在我們可以構(gòu)建并運(yùn)行它了:
$ go build -o server cmd/server/main.go
$ ./server
Running server
Hello from serverlib.Hello
客戶端看起來是對(duì)稱的。
變體:你可以用它們的實(shí)際二進(jìn)制名稱命名.go文件- 比如和. 每個(gè)包中的包仍然是,但隨后無需顯式創(chuàng)建具有文件名(沒有 )的可執(zhí)行文件。cmd/...server.goclient.gomaingo build.go-o
- 2 回答
- 0 關(guān)注
- 194 瀏覽
添加回答
舉報(bào)