2. ファイル名が_testで終わる場合、 “_test”つきのパッケージ名を定義する。 n 通常のパッケージと、外部テストパッケージ (external test package)を定義する。 n この仕組が循環参照を防ぐ。(11.2.4で詳説) 3. 依存関係管理ツールのなかには、 import pathの末尾にバージョンを付与するものもある。 n パッケージ名からはバージョンが除外される。 n 例: gopkg.in/yaml.v2 の場合、yamlとなる。
build compile packages and dependencies clean remove object files doc show documentation for package or symbol env print Go environment information fmt run gofmt on package sources get download and install packages and dependencies install compile and install packages and dependencies list list packages run compile and run Go program test test packages version print Go version vet run go tool vet on packages Use "go help [command]" for more information about a command. ...
n 配下の構造はGOPATH配下と同様。 n 通常は指定する必要はない。 ¤ go env コマンドで、その他の環境変数を一覧できる。 $ go env GOPATH="/home/gopher/gobook" GOROOT="/usr/local/go" GOARCH="amd64" GOOS="darwin" ...
コマンドでダウンロード/インストールができる。 ¤ Import pathにもとづき、ダウンロードする。 ¤ …記法を用いることで、サブツリーの一括更新も可。 ¤ Go get コマンドはGitHubやBitbucket、Launchpadと いった著名なホスティングサイトに対応している。 n その他のサイトについては、プロトコル(git, mercurial等)を 指定しないといけない。
n 例: $GOROOT/pkg/darwin_amd64 ¤ $GOOSと$GOARCHを変えるだけで、クロスコンパイ ルができる。 $ go build gopl.io/ch10/cross $ ./cross darwin amd64 $ GOARCH=386 go build gopl.io/ch10/cross $ ./cross darwin 386
n ファイル名: n (例) net_linux.go や asm_amd64.s など。 n コメント(build tag): n パッケージ宣言(とdoc commen)の前に、以下のコメントを記述。 n LinuxとMac用: // +build linux darwin n 一切コンパイルさせない場合: // +build ignore
い。 ¤ ドキュメントは常に文章であること。 ¤ 第1センテンスは要約であることがふつう。 ¤ 各種識別子(引数など)は地の文(引用符やマークアッ プなし)。 // Fprintf formats according to a format specifier and writes to w. // It returns the number of bytes written and any write error encountered. func Fprintf(w io.Writer, format string, a ...interface{}) (int, error)
n パッケージ例: $ go doc time n メンバ例: $ go doc time.Since n メソッド例: $ go doc time.Duration.Seconds ¤ 部分指定もできる。 n $ go doc json.decode // → (*json.Decoder).Decode を表示 ¤ Godoc コマンドでブラウザからも読める。 n $ godoc –http :8000 // → http://localhost:8000/pkg n https://godoc.org を参照してもよい。