演習 - Hello World

完了

このセクションでは、初めての Go プログラムを作成して、メッセージを画面に出力します。 この演習は、プログラミング言語を開始するための一般的な方法です。 Go コマンドライン インターフェイス (CLI) の詳細と、Go アプリケーションをビルドして実行する方法について学習します。

CLI から開くように IDE を構成する

CLI プロンプトから Visual Studio Code IDE を開き、現在のワークスペースでファイルの編集を開始することができます。 この IDE 機能を実装するには、$PATH (または $Path) システム環境変数を使用します。 この機能を有効にすると、CLI から code . コマンドを使用して IDE を開き、現在のディレクトリ内のファイルを編集することができます。

Visual Studio Code の一部のインストールでは、既定で、CLI のサポートが $PATH 変数に追加されます。 インストール プロセス中に、このオプションが表示される場合があります。 この設定を既に構成している場合は、すべて設定されています。 それ以外の場合、この機能を使用するには、次の手順を行う必要があります。

Linux または macOS

次の手順に従って、Visual Studio Code CLI を $PATH 環境変数に登録します。

  1. Visual Studio Code を開きます。

  2. [表示] で、[コマンド パレット] を選択します。

  3. 検索ボックスに、「シェル コマンド」と入力します。 入力すると、結果がフィルター処理されます。

  4. [シェル コマンド: PATH 内に 'code' をインストールします] コマンドを選択します。

  5. 開いているコマンド プロンプトまたはターミナル プロンプトを閉じます。

    重要

    前の演習からプロンプトを開いたままである場合は、そのプロンプトを閉じて、新しいプロンプトを開きます。 この手順は、$PATH の新しい値を有効にするために必要です。

  6. Visual Studio Code を閉じます。

Windows

次の手順に従って、Visual Studio Code CLI の場所を $Path システム環境変数に追加します。

Note

環境変数を使い慣れており、新しい場所を $Path システム変数に追加する方法がわかっている場合は、自分に最適な方法を使用できます。 次の手順は少し時間がかかりますが、変数を確実に正しく更新するための検証済みの方法です。

  1. Windows のコントロール パネルを開きます。

  2. [システム] を選択し、[システムの詳細設定] を選択します。

  3. [システムのプロパティ] ダイアログの [詳細設定] で、[環境変数] を選択します。 [環境変数の編集] ダイアログが開きます。

    [環境変数の編集] ダイアログには、次の 2 つの一覧が表示されます。

    • <user-name> のユーザー変数: 特定のユーザーのローカル変数の定義。
    • システム変数: すべてのユーザーを対象としたシステム変数の定義。

    この手順では、システム変数を使用します。

  4. [環境変数] ダイアログの [システム変数] リスト ボックスをスクロールして、[Path] 変数を見つけます。

  5. [Path] 変数を選択して、行を強調表示します。 [Edit](編集) を選択します。 [環境変数の編集] ダイアログが開きます。 ダイアログには、この変数で定義されているすべてのフォルダーの場所が一覧表示されます。

  6. [環境変数の編集] ダイアログで、[新規] を選択します。 一覧の末尾で空の行が開きます。

  7. 空の行に、Visual Studio Code CLI の実行可能ファイルの場所を入力します。 <user-name> は、実際のユーザー名に置き換えます。

    C:\Users\<user-name>\AppData\Local\Programs\Microsoft VS Code\bin
    
  8. [OK] を選択して各ダイアログを閉じます。

  9. [システムのプロパティ] ダイアログと Windows のコントロール パネルを閉じます。

手順 1: Go ワークスペースと IDE を開く

Visual Studio Code を CLI から使用する準備ができたことを確認したら、Go ワークスペースを開くことができます。

  1. 新しいコマンド プロンプトまたはターミナル プロンプトを開きます。

  2. 次のコマンドを実行して、Go ワークスペース ディレクトリを開きます。

    cd $GOPATH/src
    
    cd %GOPATH%/src
    
  3. 次のコマンドを使用して、ワークスペースから Visual Studio Code を開きます。

    code .
    

Visual Studio Code が起動されます。 左側に [エクスプローラー] ビューが表示され、右側に [ようこそ] ページが表示されます。

[エクスプローラー] ビューで、Go プロジェクトの [SRC] セクションが開きます (展開されます)。 このセクションは、プロジェクトの /src フォルダーです。 現在は空ですが、次の手順で、いくつかの内容を追加します。

手順 2: 新しいフォルダーと Go ファイルを作成する

Go プロジェクトにフォルダーとファイルを追加してみましょう。 Visual Studio Code で新しい項目を作成するには、いくつかの方法があります。

  • ツールバー メニューでの操作:
    • [ファイル]>[フォルダを開く] の順に選択し、新しいフォルダーを作成します。
    • [ファイル]>[新しいファイル] を選択して、新しいファイルを開始します。
  • [ようこそ] ページのリンク。これは、ツールバー メニューの操作と同様です。
  • [エクスプローラー] ビューの [SRC] セクションの右側にあるアイコン。
    • [新しいフォルダー] アイコンを選択します。 テキスト ボックスにフォルダー名を入力して、Enter キーを押します。
    • [新しいファイル] を選択します。 テキスト ボックスにファイル名を入力して、Enter キーを押します。

Visual Studio Code で次の手順を完了します。 新しいファイルとフォルダーを作成するには、自分に最適なプロセスを使用します。

  1. helloworld という名前の新しいフォルダーを作成します。

  2. アプリ コード用に、main.go という名前の新しいファイルを作成します。

  3. [エクスプローラー]>[SRC] ビューの順に展開し、フォルダー構造ツリーを表示します。 これはこの例のようになるはずです。

    SRC/
        helloworld/
            main.go

Go 拡張機能ツールをインストールする

main.go が、Visual Studio Code で初めて開く Go ファイルである場合は、Go 拡張機能用の他のツールをインストールするするように求められる場合があります。 メッセージが表示されたら、[インストール] を選択します。 IDE の下部にターミナルが開き、プロセスの出力が表示されます。 この例のような出力になるはずです。

Tools environment: GOPATH=C:\Projects\Go
Installing 5 tools at C:\Projects\Go\bin in module mode.
Installing github.com/uudashr/gopkgs/v2/cmd/gopkgs (C:\Projects\Go\bin\gopkgs.exe) SUCCEEDED

インストール プロセスの実行中、Visual Studio Code のステータス バーを確認します。 右下に、"All tools not installed" (すべてのツールがインストールされませんでした) などのメッセージが表示された場合、そのメッセージを選択します。 ポップアップで、[インストール] を選択します。

インストール プロセスが正常に終了すると、ターミナル出力に概要が表示されます。

All tools successfully installed. You are ready to Go :).

手順 3: コードを Go ファイルに追加する

次に、コードを Go ファイルに追加してみましょう。

  1. main.go ファイルに、次のコードを追加します。

    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("Hello World!")
    }
    
  2. ファイルを保存します。

タブやスペースなどのコードの書式設定について心配する必要はありません。 ファイルを保存するたびに、Visual Studio Code によってコードの書式設定が自動的に行われます。

手順 4: Go プログラムを実行する

Go プログラムは、コマンド プロンプトまたはターミナル プロンプトで実行できます。また、Visual Studio Code 内で実行されるターミナルでも実行できます。

既存のプロンプトを使用することも、新しいプロンプトを開くこともできます。 新しいプロンプトを開く場合、ディレクトリの場所をご使用の Go ワークスペースに変更することを忘れないでください。 また、必ず、Go ファイルがあるフォルダー ($GOPATH/src/helloworld) からプログラムを実行してください。

Visual Studio Code 内でターミナルを開く

スタンドアロンのコマンド プロンプトまたはターミナル プロンプトではなく Visual Studio Code 内でプログラムを実行する場合は、次の手順に従います。

  1. Visual Studio Code で、[ターミナル] を選択し、[新しいターミナル] を選択します。

  2. ターミナルの右上にあるドロップダウン ボックスで、[New Command Prompt](新しいコマンド プロンプト) を選択します。

  3. ターミナルで、次のコマンドを実行して、ディレクトリの場所をご使用の Go ワークスペースと、Go ファイルがあるフォルダーに変更します。

    cd $GOPATH/src/helloworld
    
    cd %GOPATH%/src/helloworld
    

Go アプリを実行する

Go アプリを実行するには、ターミナルまたはプロンプトで次のコマンドを使用します。

go run main.go

次の出力が表示されます。

Hello World!

go run コマンドでは、次の 2 つの処理が行われます。 アプリをコンパイルし、コンパイルが正常に終了すると、アプリを実行します。

実行可能ファイルをビルドする

プログラムの実行可能ファイルを生成するには、次のコマンドを使用します。

go build main.go

go build コマンドが完了すると、実行可能アプリが生成され、いつでも実行できるようになり、それ以上の処理は不要です。 このコマンドは、実行可能ファイルを生成するだけで、 go run コマンドのようにプログラムを実行しません。

/src の内容を確認する

この時点で、プロジェクトは、[エクスプローラー]>[SRC] に次のように表示されます。

SRC/
    helloworld/
        メイン
        main.go

[エクスプローラー] ビューで、名前に拡張子が付いていないファイルが、プログラムの実行に使用できる実行可能ファイルです (Windows の場合、実際には、このファイルに拡張子 .exe が付いています)。開発中は、go run コマンドを使用します。 アプリケーションのバイナリをビルドするには、go build コマンドを使用して、バイナリ実行可能ファイルを適切な環境にデプロイします。

Go で記述した内容

初めての Go アプリを作成し、コンパイルして実行できることを確認しました。 ここで、コードを 1 行ずつ調べることにしましょう。

Go ファイルの最初のステートメントから始めます。

package main

package main ステートメントは、作成しているアプリが実行可能プログラム (実行できるファイル) であることを Go に伝える方法です。 "Hello World!" アプリは、main パッケージに含まれます。 パッケージとは、一般的なソース コード ファイルのセットです。 プロジェクトまたはファイルの名前が異なっていても、すべての実行可能アプリにこの最初の行があります。

これらの概念については、次のモジュールで詳細に説明します。 ここで知っておく必要があるのは、すべての実行可能プログラムは main パッケージに含まれる必要があるということです。

課題: "パッケージ名を変更する"

main パッケージの重要性を確認できますか?

  1. Go ファイルで、最初の行のパッケージ名を変更します。
  2. ファイルを保存し、ターミナルでプログラムを再度実行します。

  処理内容 "Hello World!" と表示されますか? バイナリ実行可能ファイルは生成されますか?

 

回答を表示
"Hello World!" は表示されません。 バイナリ実行可能ファイルは生成されません。 次のエラーが表示されます: `go run: cannot run non-main package` なぜですか? すべての実行可能プログラムは 'main' パッケージの一部である必要があります。

Go ファイルの次の行を以下に示します。

import "fmt"

import ステートメントを使用すると、別のパッケージ内にある他のコードからプログラムにアクセスできます。 この場合、fmt は標準ライブラリ パッケージです。 fmt パッケージについては、Go の公式のドキュメント サイトを参照してください。

この import ステートメントが必要になるのは、プログラムの後半で、このパッケージの関数を使用して画面にメッセージを出力するためです。 プログラムに必要な数の import ステートメントを含めることができます。 ただし、この点で Go は非常にイディオムです。 パッケージをインポートするときにパッケージの対応する関数を使用しないと、アプリはコンパイルされません。 Visual Studio Code の優れた機能は、ファイルの保存時に、プログラム内の使用されていないインポートを自動的に削除することです。

ファイルを保存したときに、Visual Studio Code によってインポートが削除されましたか? Visual Studio Code を使用せずにファイルを編集して、アプリを実行してみてください。 今度は、どのような出力が表示されますか?

課題: "別のインポートを追加する"

使用されていないインポートについて学習したことを確認できますか?

  1. Go ファイルを元のコードに復元します。
  2. mathio などの別のインポート ステートメントを追加します。
  3. ファイルを保存し、ターミナルでプログラムを再度実行します。

  処理内容 使用されていないインポートは Visual Studio Code によって削除されますか? 削除される場合、それはいつですか?

  1. Go ファイルを再度編集します。ただし、Visual Studio Code は使用しません。
  2. ファイルを保存して、新しいプロンプトでプログラムを実行します。

  処理内容 今度は、どのような出力が表示されますか?

 

回答を表示
IDE で Go ファイルを編集する場合、ファイルを保存するときに、Visual Studio Code によって、使用されていないパッケージが検出され、対応する `import` ステートメントが削除されます。 Visual Studio Code の外部で Go ファイルを編集すると、そのコードは失敗します。 次のようなエラーが表示されます。 `# command-line-arguments .\main.go:5:2: imported and not used: "math"`.

Go ファイル内のコード ブロックを見てみましょう。

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

func ステートメントは、関数の宣言に使用する予約語です。 この最初の関数は、プログラムの開始点であるため、"main" という名前です。 package main (最初の行で定義したもの) 全体で 1 つの main() 関数のみを記述できます。 main() 関数で、fmt パッケージの Println 関数を呼び出し、 画面に表示するテキスト メッセージを送信しました。

関数の詳細については、次のモジュールで説明します。