m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

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は使っていない変数とかパッケージの名前がおかしいと警告や想定案みたいなものをだすので原因をそこそこ見つけやすい
ちょっとテスト方法とかも調べてみる