1. Goとは
- 1.1 Go基礎知識
- 1.2 Goの特徴
- 1.3 Go実行環境構築
- 1.4 Hello Gopherを書こう
- 1.5 プログラム解説
1.1 Go基礎知識
2009年11月10日にGoogleによって発表されたオープンソースのプログラミング言語です。
1.2 Goの特徴
Goには以下の特徴があります。
- コンパイル型
Goはコンパイラ言語です。
クロスコンパイルが可能なのでWindowsやMac、Linuxなど環境に応じたバイナリを生成することができます。
- 静的型付言語
Goは、C言語のような静的型付け言語です。
動的型付け言語の手軽さと静的型付け言語の安全性を組み合わせを目指しています。
- 明瞭な依存関係
Goでは、パッケージインポートによる依存関係を明瞭にしています。
コンパイル時に、使用されていないパッケージや相互依存があるとエラーになります。
- 並行処理が書きやすい
Goでは、言語レベルで並行処理の手段が提供されています。
後述のGoroutineやChannelでカンタンに並行処理を実装できます。
- コンカレントGC
Go1.4まではStop The WorldによるGCでしたが、
Go1.5からConcurrent Mark SweepによるGCに変わりました。
- 強力な標準ライブラリ
Goには、netやlogなど標準ライブラリが充実しています。
標準ライブラリのみで実用的なアプリケーションの作成が可能です。
- 強力な周辺ツール
Goには標準でコードフォーマッター(gofmt)やテスト(go test)があります。
gofmtによって開発者間の表記ずれが極力抑えられます。
1.3 Go 実行環境構築
Goの実行環境を整えましょう。
以下は、Macでのインストール手順です。
なお、brewやpkgでのインストールもできます。
その他のOSでのインストール手順はこちらをご覧ください。
https://golang.org/doc/install
対象のアーカイブを以下のURLから選択してダウンロードします。
https://golang.org/dl/
$ wget https://storage.googleapis.com/golang/go1.8.darwin-amd64.tar.gz
ダウンロードしたアーカイブを展開します。 ※2017/02/17時点で Go1.8 が最新
$ sudo tar -C /usr/local -xzf go1.8.darwin-amd64.tar.gz
/usr/local/go/bin を環境変数PATHに追加します。
必要に応じて、$HOME/.bash_profile や $HOME/.zsh_profile に追加してください。
$ export PATH=$PATH:/usr/local/go/bin
Goのバージョン確認( go version go1.8 darwin/amd64 と表示されれば成功です)
$ go version
go のみを入力してみましょう。
$ go
以下の内容が表示されます。
Goには標準で、
- ビルド(build)
- フォーマッタ(fmt)
- ドキュメンテーション(doc)
- テスト(test)
- パッケージインストーラ(get, install)
があることがわかります。
Go is a tool for managing Go source code. Usage: go command [arguments] The commands are: build compile packages and dependencies clean remove object files doc show documentation for package or symbol env print Go environment information bug start a bug report fix run go tool fix on packages fmt run gofmt on package sources generate generate Go files by processing source 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 tool run specified go tool version print Go version vet run go tool vet on packages Use "go help [command]" for more information about a command. Additional help topics: c calling between Go and C buildmode description of build modes filetype file types gopath GOPATH environment variable environment environment variables importpath import path syntax packages description of package lists testflag description of testing flags testfunc description of testing functions Use "go help [topic]" for more information about that topic.
1.4 Hello Gopherを書こう
それではGoで Hello Gopher をしてみましょう。
$ vi hello.go
package main import ( "fmt" ) func main() { fmt.Println("Hello, Gopher") }
実行してみます。.go ファイルの実行には run コマンドを使用します。
Hello, Gopher と表示されれば成功です。
$ go run hello.go
実行結果
Hello, Gopher