Go 言語

作成日 : 2016-12-17
最終更新日 :

Go とは

Go とは、Google が開発したコンピュータ言語である。 誤解を恐れずにいえば、 プログラミング言語 C と Java の間あたりだろう。

書籍

インストール

https://go.dev/dl に行く。Windows 11 では、Windows 7 or later, Intel 64-bit processor を選ぶ。私がダウンロードしたときのバージョンは、 1.19.3 だった(2022-12-06)。

実行

ソースファイルを foo.go というなまえで作る。コマンドラインで次のようにする。 $ go run foo.go

ゴルーチン

こわいことばであるが、まずは落ち着こう。 並行処理をプログラマが楽に書けるように、Go はゴルーチンという機能を実装している。 ゴルーチンという用語はきっと、プログラミング言語のコルーチンから来ているに違いない。

プログラミング言語では、 サブルーチンの類似概念としてコルーチンという機構がある。 サブルーチンはある関数がもうひとつの関数を呼び出すという機構で、 呼び出しと呼び出されという上下関係がある。 これに対し、コルーチンは互いの関数がもう一方の関数を呼び出すという相互関係であり、 この点がサブルーチンとは異なる。

ゴルーチンは、今では顧みられなくなったコルーチンへの尊敬の意味をあらわした命名だろう。

テストができない

「Go 言語で作るインタプリタ」という本を読んでいて、 p.6 にあるテストをしようとしたら、できなかった。
$ go test./lexer

$ go test ./lexer
# _/mnt/c/Users/username/Documents/interpreter/monkey/lexer
package _/mnt/c/Users/username/Documents/interpreter/monkey/lexer (test)
		imports monkey/token: cannot find package "monkey/token" in any of:
		/usr/lib/go-1.13/src/monkey/token (from $GOROOT)
		/home/username/go/src/monkey/token (from $GOPATH)
FAIL    _/mnt/c/Users/username/Documents/interpreter/monkey/lexer [setup failed]
FAIL

そこで、環境変数 GOPATH に /mnt/c/Users/username/Documents/interpreter を設定し、かつ interpreter の直下に monkey を作るのではなく、interpreter の下にディレクトリ src を作り、 その下に monkey を置くようにした。

この結果、cannot fined package のエラーは消えた。

リンク集

まりんきょ学問所コンピュータの部屋コンピュータの本 > Go 言語


MARUYAMA Satosi