Go
https://gyazo.com/d1655a99170d41e08705de0664dcbe36
プログラミング言語 Programming Language
言語特徴
Compile コンパイル
行ったこと
Go公式tutorial
~More types: structs, slices, and maps.
関数書き方
code:function.go
// (引数,引数... 型) 
//(返り値,返り値... 型)
func whoAreYou (first,last string)(name stirng){
name = first + last
//naked return
return
}
変数書き方
code:value.go
//変数型付け
var i, j int = 1,2
//初期値に合わせて、自動型付け
var c, python, java = true, false, "no!"
//関数内のvar省略 暗黙的型宣言 :=
func main() {
var i, j int = 1, 2
k := 3
c, python, java := true, false, "no!"
fmt.Println(i, j, k, c, python, java)
}
型種類
hr.icon
初期環境設定
インストール
code:go.sh
brew install go
GOROOT設定
インストール後からディレクトリを変更すると、設定必要
code:go.sh
go env GOROOT //GOROOTわかる
GOPATH設定
外部パッケージのリソースが保存されるパス(通すの必須!)
code:go.sh
export GOPATH=$(go env GOPATH)
export PATH=$PATH:$GOPATH/bin
hr.icon
パッケージ
ソースコードリポジトリから直接インストール(あまりオススメでない)
Go環境必須
最新版が入る(≠安定版)
バイナリにビルド情報などが埋め込まれない
code:go.sh
go get github.com/motemen/gore/cmd/gore
go srcの階層見る
入ってるパッケージなどわかる
code:go.sh
tree -L 3 $GOPATH/src
hr.icon
プロジェクト管理
ghq
階層構造でソースコードリポジトリを取得、管理するためのツール
motemen/ghq: Remote repository management made easy
ghq: リモートリポジトリのローカルクローンをシンプルに管理する - 詩と創作・思索のひろば
初期設定
code:go.sh
brew install ghq //インストール
//ソースコードを$GOPATH/src 以下で管理
git config --global ghq.root $GOPATH/src
code:ghq.sh
ghq list //存在するリポジトリ取得
pecoを使うと早く移動できるよう..
hr.icon
フォーマッター
gofmt
標準のFormatters
goimports(まだ入れてない)
パッケージの自動読み込み、削除
hr.icon
lintツール
go vet 未インストール
標準のLinters
golint 未インストール
公式のLinters
hr.icon
ドキュメント閲覧ツール
go doc
標準のドキュメント閲覧ツール
godoc
httpサーバを立ててブラウザでドキュメント閲覧可能
hr.icon
パッケージ管理
vendoring
Modules
hr.icon
タスクランナー
Makefile
hr.icon
作業
cd go/src/
github
go.org
hr.icon
参考記事
動的言語だけやってた僕が、38日間Go言語を書いて学んだこと
Go言語の初心者が見ると幸せになれる場所 #golang - Qiita
「Vue.js + Go言語 + Firebase 」で始める! Frontend & Backend API 両方で認証するセキュアなSPA開発ハンズオン! - Qiita
スライド
GemcoookとYahoo!Go紹介