文書の過去の版を表示しています。
Go 関連
本家: The Go Programming Language
ソースコード: golang/go: The Go programming language
Go はプログラミング言語の 1 つである。(コンパイラー言語) 2009 年、Google で Robert Griesemer、ロブ・パイク、ケン・トンプソンによって設計された。Go は、静的型付け、C言語の伝統に則ったコンパイル言語、メモリ安全性、ガベージコレクション、構造的型付け、CSP スタイルの並行性などの特徴を持つ。Go のコンパイラ、ツール、およびソースコードは、すべてフリーかつオープンソースである。
また、軽量スレッディングのための機能、Python のような動的型付け言語のようなプログラミングの容易性、などの特徴もある。Go 処理系としてはコンパイラのみが開発されている。マスコット・キャラクターは Gopher (ホリネズミ)。
Go (プログラミング言語) - Wikipedia より
インストール
公式: Download and install - The Go Programming Language 翻訳
$ sudo dnf install golang
Fedora 38 - x86_64 - Updates 6.7 kB/s | 6.1 kB 00:00 Fedora 38 - x86_64 - Updates 467 kB/s | 2.3 MB 00:05 Fedora Modular 38 - x86_64 - Updates 11 kB/s | 5.2 kB 00:00 依存関係が解決しました。 ============================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ============================================================================================================== インストール: golang x86_64 1.20.5-1.fc38 updates 604 k 依存関係のインストール: golang-bin x86_64 1.20.5-1.fc38 updates 58 M golang-src noarch 1.20.5-1.fc38 updates 11 M libserf x86_64 1.3.9-27.fc38 fedora 57 k subversion-libs x86_64 1.14.2-13.fc38 fedora 1.5 M utf8proc x86_64 2.7.0-4.fc38 fedora 80 k 弱い依存関係のインストール: subversion x86_64 1.14.2-13.fc38 fedora 1.0 M トランザクションの概要 ============================================================================================================== インストール 7 パッケージ ダウンロードサイズの合計: 72 M インストール後のサイズ: 214 M これでよろしいですか? [y/N]: y パッケージのダウンロード: (1/7): libserf-1.3.9-27.fc38.x86_64.rpm 141 kB/s | 57 kB 00:00 (2/7): utf8proc-2.7.0-4.fc38.x86_64.rpm 240 kB/s | 80 kB 00:00 (3/7): subversion-1.14.2-13.fc38.x86_64.rpm 529 kB/s | 1.0 MB 00:01 (4/7): subversion-libs-1.14.2-13.fc38.x86_64.rpm 543 kB/s | 1.5 MB 00:02 (5/7): golang-1.20.5-1.fc38.x86_64.rpm 212 kB/s | 604 kB 00:02 (6/7): golang-src-1.20.5-1.fc38.noarch.rpm 2.0 MB/s | 11 MB 00:05 (7/7): golang-bin-1.20.5-1.fc38.x86_64.rpm 2.5 MB/s | 58 MB 00:23 -------------------------------------------------------------------------------------------------------------- 合計 2.7 MB/s | 72 MB 00:26 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 scriptletの実行中: golang-1.20.5-1.fc38.x86_64 1/1 準備 : 1/1 インストール中 : golang-src-1.20.5-1.fc38.noarch 1/7 インストール中 : utf8proc-2.7.0-4.fc38.x86_64 2/7 インストール中 : libserf-1.3.9-27.fc38.x86_64 3/7 インストール中 : subversion-libs-1.14.2-13.fc38.x86_64 4/7 インストール中 : subversion-1.14.2-13.fc38.x86_64 5/7 scriptletの実行中: subversion-1.14.2-13.fc38.x86_64 5/7 インストール中 : golang-1.20.5-1.fc38.x86_64 6/7 インストール中 : golang-bin-1.20.5-1.fc38.x86_64 7/7 scriptletの実行中: golang-bin-1.20.5-1.fc38.x86_64 7/7 検証 : libserf-1.3.9-27.fc38.x86_64 1/7 検証 : subversion-1.14.2-13.fc38.x86_64 2/7 検証 : subversion-libs-1.14.2-13.fc38.x86_64 3/7 検証 : utf8proc-2.7.0-4.fc38.x86_64 4/7 検証 : golang-1.20.5-1.fc38.x86_64 5/7 検証 : golang-bin-1.20.5-1.fc38.x86_64 6/7 検証 : golang-src-1.20.5-1.fc38.noarch 7/7 インストール済み: golang-1.20.5-1.fc38.x86_64 golang-bin-1.20.5-1.fc38.x86_64 golang-src-1.20.5-1.fc38.noarch libserf-1.3.9-27.fc38.x86_64 subversion-1.14.2-13.fc38.x86_64 subversion-libs-1.14.2-13.fc38.x86_64 utf8proc-2.7.0-4.fc38.x86_64 完了しました!
$ go version
go version go1.20.5 linux/amd64
Go のワークスペース (GOPATH 環境変数)
公式: How to Write Go Code (with GOPATH) - The Go Programming Language 翻訳
Go のワークスペースは標準で $HOME/go
です。
$ go env GOPATH
/home/tomoyan/go
変更するには以下のように設定する。
$ mkdir -p ~/go $ echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc $ source ~/.bashrc $ go env GOPATH
/home/tomoyan/go
プログラムの作成
Go でプログラムを作成するには、$GOPATH/src サブディレクトリに .go 拡張子を持つファイルを作成する。
$ mkdir -p $GOPATH/src/hello && cd $GOPATH/src/hello $ vi hello.go
- hello.go
package main import "fmt" func main() { fmt.Println("Hello, World!") }
変更を保存し、同じディレクトリで hello.go を実行する。
$ go run hello.go Hello, World!
hello.go をビルドするは簡単である。
$ go build $ ls hello hello.go $ ./hello Hello, World!
さらに go install で $GOPATH/bin にインストールされる。
$ go install $ ls $GOPATH/bin hello
また、$GOPATH/pkg のすべての依存関係を構築およびキャッシュする。
プログラムは $GOPATH/bin にインストールされるため、一般的には PATH 環境変数に追加して、フルパスを指定せずに Go プログラムを実行できるようにする。
$ echo 'export PATH=$PATH:$GOPATH/bin' >> $HOME/.bashrc $ source ~/.bashrc $ hello Hello, World!
Go パッケージのインストール
アップストリームの Go パッケージ
アップストリームプロジェクトは go get コマンドでインストールできる。
$ go get github.com/gorilla/context
ゴ、ゴリラ? (gorilla)…
参考文献
Go — Fedora Developer Portal
Writing Go programs — Fedora Developer Portal
Gopher の人気度は: インターネット上の GoLang マルウェア分析 - Palo Alto Networks
Grumpy
Grumpy: Go running Python! | Google Open Source Blog
Grumpy(Go running Python)を試してみた。 - Qiita
グーグル、Pythonコードを「Go」言語に変換する「Grumpy」を公開 - ZDNet Japan