チュートリアル: Goを始めよう
このチュートリアルでは、Goプログラミングの簡単な紹介をします。その過程で、以下を行います。
- Goをインストールします(まだの場合)。
- 簡単な「Hello, world」コードを記述します。
go
コマンドを使用してコードを実行します。- Goパッケージ発見ツールを使用して、自分のコードで使用できるパッケージを見つけます。
- 外部モジュールの関数を呼び出します。
前提条件
- プログラミングの経験。 ここのコードは非常にシンプルですが、関数について何か知っていると役に立ちます。
- コードを編集するためのツール。 テキストエディターならどれでもうまく動作します。ほとんどのテキストエディターはGoをよくサポートしています。最も人気があるのはVSCode(無料)、GoLand(有料)、Vim(無料)です。
- コマンドターミナル。 Goは、LinuxとMacの任意のターミナル、およびWindowsのPowerShellまたはcmdでうまく動作します。
Goをインストールする
ダウンロードとインストールの手順に従ってください。
コードを記述する
Hello, Worldから始めましょう。
- コマンドプロンプトを開き、ホームディレクトリに移動します。
LinuxまたはMacの場合
cd
Windowsの場合
cd %HOMEPATH%
- 最初のGoソースコード用のhelloディレクトリを作成します。
たとえば、次のコマンドを使用します。
mkdir hello cd hello
- コードの依存関係の追跡を有効にします。
コードが他のモジュールに含まれるパッケージをインポートする場合、コード独自のモジュールを介してこれらの依存関係を管理します。そのモジュールは、これらのパッケージを提供するモジュールを追跡するgo.modファイルによって定義されます。そのgo.modファイルは、ソースコードリポジトリを含め、コードと一緒に保持されます。
go.modファイルを作成してコードの依存関係の追跡を有効にするには、
go mod init
コマンドを実行し、コードが含まれるモジュールの名前を付けます。この名前はモジュールのモジュールパスです。実際の開発では、モジュールパスは通常、ソースコードが保持されるリポジトリの場所になります。たとえば、モジュールパスは
github.com/mymodule
になる場合があります。モジュールを他の人が使用できるように公開する場合は、モジュールパスは、Goツールがモジュールをダウンロードできる場所でなければなりません。モジュールパスを使用したモジュールの命名の詳細については、依存関係の管理を参照してください。このチュートリアルでは、
example/hello
を使用してください。$ go mod init example/hello go: creating new go.mod: module example/hello
-
テキストエディターで、コードを記述するhello.goファイルを作成します。
-
次のコードをhello.goファイルに貼り付けて、ファイルを保存します。
package main import "fmt" func main() { fmt.Println("Hello, World!") }
これがGoコードです。このコードでは、以下を行います。
-
コードを実行してあいさつを表示します。
$ go run . Hello, World!
go run
コマンドは、Goで物事を成し遂げるために使用する多くのgo
コマンドの1つです。次のコマンドを使用して、他のコマンドのリストを取得します。$ go help
外部パッケージのコードを呼び出す
コードで、他の人が実装した可能性のある何かを行う必要がある場合は、コードで使用できる関数を持つパッケージを探すことができます。
- 外部モジュールの関数を使用して、印刷されたメッセージを少し面白くします。
- pkg.go.devにアクセスして、「quote」パッケージを検索します。
- 検索結果で
rsc.io/quote
パッケージを見つけてクリックします(rsc.io/quote/v3
が表示された場合は、今は無視してください)。 - ドキュメントセクションのインデックスの下に、コードから呼び出すことができる関数リストに注意してください。
Go
関数を使用します。 - このページの上部で、パッケージ
quote
がrsc.io/quote
モジュールに含まれていることに注意してください。
pkg.go.devサイトを使用して、パッケージに自分のコードで使用できる関数が含まれている、公開されたモジュールを見つけることができます。パッケージは、他の人が使用できる
rsc.io/quote
のようなモジュールで公開されます。モジュールは時間の経過とともに新しいバージョンで改善され、コードをアップグレードして改善されたバージョンを使用できます。 - Goコードで、
rsc.io/quote
パッケージをインポートし、そのGo
関数への呼び出しを追加します。強調表示された行を追加すると、コードには以下が含まれる必要があります。
package main import "fmt" import "rsc.io/quote" func main() { fmt.Println(quote.Go()) }
- 新しいモジュール要件と合計を追加します。
Goは、
quote
モジュールを要件として、およびモジュールの認証で使用するgo.sumファイルとして追加します。詳細については、Goモジュールリファレンスのモジュールの認証を参照してください。$ go mod tidy go: finding module for package rsc.io/quote go: found rsc.io/quote in rsc.io/quote v1.5.2
- コードを実行して、呼び出している関数によって生成されたメッセージを表示します。
$ go run . Don't communicate by sharing memory, share memory by communicating.
コードが
Go
関数を呼び出し、コミュニケーションに関する賢いメッセージを出力することに注意してください。go mod tidy
を実行すると、インポートしたパッケージを含むrsc.io/quote
モジュールが検出されてダウンロードされました。デフォルトでは、最新バージョンであるv1.5.2がダウンロードされました。
さらにコードを記述する
この簡単な紹介で、Goがインストールされ、いくつかの基本を学びました。別のチュートリアルでさらにコードを記述するには、Goモジュールの作成をご覧ください。