チュートリアル: Go の使用を開始する

このチュートリアルでは、Go プログラミングの簡単な紹介をします。このチュートリアルを通して、次のことを行います。

前提条件

Go をインストールする

ダウンロードとインストールの手順を使用するだけです。

コードを作成する

Hello, World から始めましょう。

  1. コマンドプロンプトを開き、ホームディレクトリに移動します。

    LinuxまたはMacの場合

    cd
    

    Windowsの場合

    cd %HOMEPATH%
    
  2. 最初の Go ソースコード用に hello ディレクトリを作成します。

    例えば、次のコマンドを使用します。

    mkdir hello
    cd hello
    
  3. コードの依存関係追跡を有効にする。

    コードが他のモジュールに含まれるパッケージをインポートする場合、それらの依存関係はコード独自のモジュールを介して管理されます。このモジュールは、それらのパッケージを提供するモジュールを追跡する 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
    
  4. テキストエディタで、コードを記述する hello.go ファイルを作成します。

  5. 次のコードを hello.go ファイルに貼り付け、ファイルを保存します。

    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("Hello, World!")
    }
    

    これはあなたの Go コードです。このコードでは、次のことを行います。

    • main パッケージを宣言します (パッケージは関数をグループ化する方法であり、同じディレクトリ内のすべてのファイルで構成されます)。
    • コンソールへの出力を含むテキストの書式設定用関数が含まれる、人気の fmt パッケージをインポートします。このパッケージは、Go をインストールしたときに取得した標準ライブラリパッケージの 1 つです。
    • コンソールにメッセージを出力する main 関数を実装します。main パッケージを実行すると、main 関数がデフォルトで実行されます。
  6. コードを実行して、挨拶を確認します。

    $ go run .
    Hello, World!
    

    go run コマンドは、Go でタスクを実行するために使用する多くの go コマンドの 1 つです。他のコマンドのリストを取得するには、次のコマンドを使用します。

    $ go help
    

外部パッケージのコードを呼び出す

自分のコードで、他の誰かが実装したかもしれないことを実行する必要がある場合は、自分のコードで使用できる関数を持つパッケージを探すことができます。

  1. 外部モジュールの関数を使用して、出力メッセージを少し面白くしましょう。
    1. pkg.go.dev にアクセスして、「quote」パッケージを検索します
    2. 検索結果で、rsc.io/quote パッケージの v1 を見つけてクリックします (rsc.io/quote/v4 の「他の主要バージョン」とともに表示されるはずです)。
    3. Documentation セクションの Index の下にある、コードから呼び出すことができる関数のリストに注目してください。Go 関数を使用します。
    4. このページの上部で、パッケージ quotersc.io/quote モジュールに含まれていることに注目してください。

    pkg.go.dev サイトを使用して、自分のコードで使用できる関数を持つパッケージが公開されているモジュールを見つけることができます。パッケージは rsc.io/quote のようなモジュールで公開され、他の人が使用できます。モジュールは時間の経過とともに新しいバージョンで改善され、改善されたバージョンを使用するようにコードをアップグレードできます。

  2. Go コードで、rsc.io/quote パッケージをインポートし、その Go 関数への呼び出しを追加します。

    ハイライトされた行を追加した後、コードには次のものが含まれるはずです。

    package main
    
    import "fmt"
    
    import "rsc.io/quote"
    
    func main() {
        fmt.Println(quote.Go())
    }
    
  3. 新しいモジュール要件と合計を追加します。

    Go は、quote モジュールを要件として追加し、モジュールの認証に使用する go.sum ファイルも追加します。詳細については、Go Modules Reference のモジュールの認証を参照してください。

    $ go mod tidy
    go: finding module for package rsc.io/quote
    go: found rsc.io/quote in rsc.io/quote v1.5.2
    
  4. コードを実行して、呼び出している関数によって生成されたメッセージを確認します。
    $ go run .
    Don't communicate by sharing memory, share memory by communicating.
    

    コードが Go 関数を呼び出し、コミュニケーションに関する気の利いたメッセージを出力していることに注目してください。

    go mod tidy を実行すると、インポートしたパッケージを含む rsc.io/quote モジュールが検索され、ダウンロードされました。デフォルトでは、最新バージョンである v1.5.2 がダウンロードされました。

さらにコードを記述する

この簡単な紹介で、Go をインストールし、いくつかの基本を学びました。別のチュートリアルでさらにコードを記述するには、Go モジュールを作成するを参照してください。