gopl-zh.github.com/ch10/ch10-07-1.md

51 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

### 10.7.1. 工作區結構
對於大多數的Go語言用戶隻需要配置一個名叫GOPATH的環境變量用來指定當前工作目録卽可。當需要切換到不同工作區的時候隻要更新GOPATH就可以了。例如我們在編寫本書時將GOPATH設置爲`$HOME/gobook`
```
$ export GOPATH=$HOME/gobook
$ go get gopl.io/...
```
當你用前面介紹的命令下載本書全部的例子源碼之後,你的當前工作區的目録結構應該是這樣的:
```
GOPATH/
src/
gopl.io/
.git/
ch1/
helloworld/
main.go
dup/
main.go
...
golang.org/x/net/
.git/
html/
parse.go
node.go
...
bin/
helloworld
dup
pkg/
darwin_amd64/
...
```
GOPATH對應的工作區目録有三個子目録。其中src子目録用於存儲源代碼。每個包被保存在與$GOPATH/src的相對路徑爲包導入路徑的子目録中例如gopl.io/ch1/helloworld相對應的路徑目録。我們看到一個GOPATH工作區的src目録中可能有多個獨立的版本控製繫統例如gopl.io和golang.org分别對應不同的Git倉庫。其中pkg子目録用於保存編譯後的包的目標文件bin子目録用於保存編譯後的可執行程序例如helloworld可執行程序。
第二個環境變量GOROOT用來指定Go的安裝目録還有它自帶的標準庫包的位置。GOROOT的目録結構和GOPATH類似因此存放fmt包的源代碼對應目録應該爲$GOROOT/src/fmt。用戶一般不需要設置GOROOT默認情況下Go語言安裝工具會將其設置爲安裝的目録路徑。
其中`go env`命令用於査看Go語音工具涉及的所有環境變量的值包括未設置環境變量的默認值。GOOS環境變量用於指定目標操作繫統例如android、linux、darwin或windowsGOARCH環境變量用於指定處理器的類型例如amd64、386或arm等。雖然GOPATH環境變量是唯一必需要設置的但是其它環境變量也會偶爾用到。
```
$ go env
GOPATH="/home/gopher/gobook"
GOROOT="/usr/local/go"
GOARCH="amd64"
GOOS="darwin"
...
```