Go
Go は、Google がサポートするオープンソースプログラミング言語です。the Go documentation から:
Go は表現力豊かで、簡潔で、クリーンで効率的です。その同時実行メカニズムにより、マルチコアおよびネットワーク化されたマシンを最大限に活用するプログラムの作成が容易になり、また、その新しいタイプのシステムにより、柔軟なモジュール型プログラム構築が可能になります。Go はマシンコードに迅速にコンパイルされますが、ガベージコレクションの利便性と実行時リフレクションの機能を備えています。これは、動的に型付けされ解釈される言語のように感じられる、高速な静的型付けコンパイル言語です。
目次
インストール
go パッケージを インストール して下さい、これには標準の Go コンパイラーとその他の開発ツールが含まれています。含まれるサブコマンドのリストについては、go コマンドのドキュメント を参照してください。
代替コンパイラ
go パッケージには、gc と呼ばれる標準 Go コンパイラが含まれています。次の代替コンパイラも使用できます。
gccgo
GCC のフロントエンド gccgo は、gcc-go パッケージによって提供されます。gccgo は、場合によっては gc より高速なバイナリを生成し、追加のオペレーティングシステムやアーキテクチャをターゲットにすることができます。実際には、ほぼすべてのワークロードにおいて、gc は gccgo よりも高速なバイナリを生成します。
TinyGo
TinyGo は、組み込みシステムおよび WebAssembly 用の非常に小さなバイナリを生成するように設計された LLVM ベースのコンパイラです。これは、tinygo パッケージによって提供されます。
ツール
次のパッケージは Go 用の開発者ツールを提供します:
- Go ツール — 主に Go プログラムの静的解析のための様々なツールと Go パッケージ。
- gopls — 公式 Go 言語サーバ
- Delve — Go プログラミング言語のデバッガ。
- go-bindata — 任意のファイルから Go コードを生成する小さなユーティリティ。Go プログラムにバイナリデータを埋め込むのに便利です。
- GoReleaser — Go プロジェクト用のリリース自動化ツール
- gox — 複数のプラットフォームのビルドを並列化する Go クロスコンパイル用のツール。
- ko — Go アプリケーション用のコンテナイメージビルダ。
- revive — 高速、構成可能、拡張可能、柔軟で美しい Go 用 linter。
- Staticcheck — Goプログラミング言語用の最先端のリンター。
- Yaegi — Goインタプリタ。yaegiコマンドラインインタープリタ /REPL を含みます。
インストールディレクトリ
go install
コマンドは、GOBIN
環境変数 で指定されたディレクトリに Go 実行可能ファイルをインストールします。GOBIN
のデフォルトは $GOPATH/bin
、または GOPATH
環境変数が設定されていない場合は ~/go/bin
です。
便宜上、bin サブディレクトリを PATH
に追加します:
$ export PATH="$PATH:$(go env GOBIN):$(go env GOPATH)/bin"
詳細については、Go コードの書き方 および go help install
を参照してください。
トラブルシューティング
Jetbrains の Go プラグイン
もし Jetbrains IDE を使用していて Go プラグインが Go SDK のパスを見つけられない場合、互換性のないパッケージを使用している可能性があります。gcc-go
パッケージを削除し、go
パッケージで置き換えてください。GOPATH が設定されている場合、IDE は /usr/lib/go
に存在する Go SDK を認識します。