GOPATHを使用してgo installとかする
実行環境?
macです。ディスク容量がやばいのでもうそろそろ家のやつはminiに移行しようかと考え中
GOPATHってなん
go言語で使用する際のworkディレクトリみたいなものパッケージを取得する場合などやフレームワークを使いたい場合は必須
どこに作成するのか?
基本的に制限はないらしい
一般的にはgocodeとか別途バージョン番号とかで分けたりしていることもあるらしいけど
ディレクトリ構成は?
こうなった
$ tree . ├── bin ├── pkg └── src └── github.com └── mshige1979 5 directories, 0 files $
bin:go installした際に配置される場所
pkg:中間ビルドされた時のファイルなどが配置されている感じ
src:ソースコードを置く
※go getコマンドで実行した際もここのディレクトリをベースに配置されるとのこと
サンプルになんかを作成する
hello的なやる
ディレクトリ作成
$ cd src/github.com/mshige1979/ $ mkdir hello $ cd hello/
hello.go
package main import ( "fmt" ) func main(){ fmt.Printf("Hello, World!\n") }
スクリプト実行
$ go run hello.go Hello, World! $
go install
$ go install $ tree $GOPATH/bin $GOPATH/bin └── hello 0 directories, 1 file $
※作成されていること
実行
$ $GOPATH/bin/hello Hello, World! $
ライブラリを作成する
computeとか…
ディレクトリ作成
$ mkdir compute cd compute/
add.go
package compute func Add(a int, b int) int { return a + b }
※まあ、超適当で…
さっきのhello.goを修正する
package main import ( "fmt" "github.com/mshige1979/compute" ) func main(){ fmt.Printf("Hello, World!\n") a := 10 b := 20 c := compute.Add(a, b) fmt.Printf("%d + %d = %d\n!", a, b, c) }
インストールして実行
$ go install $ $GOPATH/bin/hello Hello, World! 10 + 20 = 30 $
pkgの中身
$ tree $GOPATH/pkg $GOPATH/pkg └── darwin_amd64 └── github.com └── mshige1979 └── compute.a 3 directories, 1 file $
所感
goは使っていない変数とかパッケージの名前がおかしいと警告や想定案みたいなものをだすので原因をそこそこ見つけやすい
ちょっとテスト方法とかも調べてみる