golang

文書の過去の版を表示しています。


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 -y golang

リポジトリの更新を読み込み中:
リポジトリを読み込みました。
Package                              Arch       Version                               Repository              Size
Installing:
 golang                              x86_64     1.23.6-1.fc41                         updates              8.9 MiB
Installing dependencies:
 go-filesystem                       x86_64     3.6.0-5.fc41                          updates              0.0   B
 golang-bin                          x86_64     1.23.6-1.fc41                         updates            113.9 MiB
 golang-src                          noarch     1.23.6-1.fc41                         updates             76.3 MiB
Installing weak dependencies:
 mercurial                           x86_64     6.8.2-1.fc41                          updates             30.8 MiB

Transaction Summary:
 Installing:         5 packages

パッケージサイズ 47 MiB 、ダウンロードサイズ 47 MiB 。
完了後、230 MiB のサイズが利用されます(インストール 230 MiB、削除 0 B)。
[1/5] golang-0:1.23.6-1.fc41.x86_64                                       100% | 336.0 KiB/s | 668.9 KiB |  00m02s
[2/5] go-filesystem-0:3.6.0-5.fc41.x86_64                                 100% |  38.6 KiB/s |   9.0 KiB |  00m00s
[3/5] golang-src-0:1.23.6-1.fc41.noarch                                   100% | 762.2 KiB/s |  12.8 MiB |  00m17s
[4/5] mercurial-0:6.8.2-1.fc41.x86_64                                     100% | 390.4 KiB/s |   6.5 MiB |  00m17s
[5/5] golang-bin-0:1.23.6-1.fc41.x86_64                                   100% | 915.6 KiB/s |  27.5 MiB |  00m31s
------------------------------------------------------------------------------------------------------------------
[5/5] Total                                                               100% |   1.5 MiB/s |  47.4 MiB |  00m32s
トランザクションを実行中
[1/7] パッケージ ファイルを検証                               100% |   7.0   B/s |   5.0   B |  00m01s
[2/7] トランザクションの準備                                   100% |   0.0   B/s |   5.0   B |  00m08s
[3/7] インストール中 go-filesystem-0:3.6.0-5.fc41.x86_64           100% | 876.0   B/s | 392.0   B |  00m00s
[4/7] インストール中 golang-src-0:1.23.6-1.fc41.noarch             100% |  21.8 MiB/s |  77.2 MiB |  00m04s
[5/7] インストール中 golang-bin-0:1.23.6-1.fc41.x86_64             100% |  64.9 MiB/s | 113.9 MiB |  00m02s
[6/7] インストール中 golang-0:1.23.6-1.fc41.x86_64                 100% |  25.2 MiB/s |   8.9 MiB |  00m00s
[7/7] インストール中 mercurial-0:6.8.2-1.fc41.x86_64               100% |   1.4 MiB/s |  31.1 MiB |  00m22s
完了しました!

$ go version

go version go1.23.6 linux/amd64

公式: How to Write Go Code (with GOPATH) - The Go Programming Language 翻訳
Go のワークスペースは標準で $HOME/go です。

$ go env GOPATH

/home/tomoyan/go

Go でインストールしたコマンドを使用するには $(go env GOPATH)/bin を PATH に追加する。

$ mkdir -p ~/go
$ echo 'export GOPATH=$(go env GOPATH)' >> $HOME/.bashrc
$ echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> $HOME/.bashrc
$ source ~/.bashrc
$ echo $PATH

/home/tomoyan/go/bin: ...

$ echo $GOPATH

/home/tomoyan/go

GOPATH を変更するには以下のように設定する。

$ mkdir -p ~/go
$ echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc
$ source ~/.bashrc
$ go env GOPATH

/home/tomoyan/go

公式: Tutorial: Get started with Go - The Go Programming Language 翻訳

Go でプログラムを作成するには、$(go env GOPATH)/src サブディレクトリに .go 拡張子を持つファイルを作成する。
go.mod ファイルを作成してコードの依存関係追跡を有効にする。

$ mkdir -p $(go env GOPATH)/src/haruo && cd $(go env GOPATH)/src/haruo
$ go mod init example/haruo

go: creating new go.mod: module example/haruo
go: to add module requirements and sums:
	go mod tidy

$ cat go.mod

gmodule example/haruo

go 1.20

$ nano haruo.go

haruo.go
package main
 
import "fmt"
 
func main() {
    fmt.Println("Haruo, World!")
}

変更を保存し、同じディレクトリで haruo.go を実行する。

$ go run .

Haruo, World!

hello.go をビルドするは簡単である。

$ go build
$ ls

go.mod  haruo  haruo.go

$ ./haruo

Haruo, World!

さらに go install$GOPATH/bin にインストールされる。 

$ go install
$ ls $(go env GOPATH)/bin

haruo

また、$GOPATH/pkg のすべての依存関係を構築およびキャッシュする。

プログラムは $GOPATH/bin にインストールされるため、一般的には PATH 環境変数に追加して、フルパスを指定せずに Go プログラムを実行できるようにする。

$ echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> $HOME/.bashrc
$ source ~/.bashrc
$ haruo

Haruo, World!

Go パッケージは go install コマンドでインストールできる。

cjbassi/gotop: A terminal based graphical activity monitor inspired by gtop and vtop

Go 1.17 から go get でのインストールが非推奨になった🤔

$ go get github.com/cjbassi/gotop

go: go.mod file not found in current directory or any parent directory.
	'go get' is no longer supported outside a module.
	To build and install a command, use 'go install' with a version,
	like 'go install example.com/cmd@latest'
	For more information, see https://golang.org/doc/go-get-install-deprecation
	or run 'go help get' or 'go help install'.

go install でインストールする。

$ go install github.com/cjbassi/gotop@latest

go: downloading github.com/cjbassi/gotop v0.0.0-20200829004927-65d76af83079
go: downloading github.com/docopt/docopt.go v0.0.0-20180111231733-ee0de3bc6815
go: downloading github.com/gizak/termui/v3 v3.0.0
go: downloading github.com/distatus/battery v0.9.0
go: downloading github.com/shirou/gopsutil v2.18.11+incompatible
go: downloading github.com/cjbassi/drawille-go v0.0.0-20190126131713-27dc511fe6fd
go: downloading github.com/mattn/go-runewidth v0.0.4
go: downloading github.com/mitchellh/go-wordwrap v1.0.0
go: downloading github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d
go: downloading golang.org/x/sys v0.0.0-20190116161447-11f53e031339

gotop を実行する。

$ gotop

  • golang.1741136826.txt.gz
  • 最終更新: 2025/03/05 10:07
  • by ともやん