演習 - 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 環境変数に登録します。
Visual Studio Code を開きます。
[表示] で、[コマンド パレット] を選択します。
検索ボックスに、「シェル コマンド」と入力します。 入力すると、結果がフィルター処理されます。
[シェル コマンド: PATH 内に 'code' をインストールします] コマンドを選択します。
開いているコマンド プロンプトまたはターミナル プロンプトを閉じます。
重要
前の演習からプロンプトを開いたままである場合は、そのプロンプトを閉じて、新しいプロンプトを開きます。 この手順は、$PATH の新しい値を有効にするために必要です。
Visual Studio Code を閉じます。
Windows
次の手順に従って、Visual Studio Code CLI の場所を $Path システム環境変数に追加します。
Note
環境変数を使い慣れており、新しい場所を $Path システム変数に追加する方法がわかっている場合は、自分に最適な方法を使用できます。 次の手順は少し時間がかかりますが、変数を確実に正しく更新するための検証済みの方法です。
Windows のコントロール パネルを開きます。
[システム] を選択し、[システムの詳細設定] を選択します。
[システムのプロパティ] ダイアログの [詳細設定] で、[環境変数] を選択します。 [環境変数の編集] ダイアログが開きます。
[環境変数の編集] ダイアログには、次の 2 つの一覧が表示されます。
- <user-name> のユーザー変数: 特定のユーザーのローカル変数の定義。
- システム変数: すべてのユーザーを対象としたシステム変数の定義。
この手順では、システム変数を使用します。
[環境変数] ダイアログの [システム変数] リスト ボックスをスクロールして、[Path] 変数を見つけます。
[Path] 変数を選択して、行を強調表示します。 [Edit](編集) を選択します。 [環境変数の編集] ダイアログが開きます。 ダイアログには、この変数で定義されているすべてのフォルダーの場所が一覧表示されます。
[環境変数の編集] ダイアログで、[新規] を選択します。 一覧の末尾で空の行が開きます。
空の行に、Visual Studio Code CLI の実行可能ファイルの場所を入力します。
<user-name>
は、実際のユーザー名に置き換えます。C:\Users\<user-name>\AppData\Local\Programs\Microsoft VS Code\bin
[OK] を選択して各ダイアログを閉じます。
[システムのプロパティ] ダイアログと Windows のコントロール パネルを閉じます。
手順 1: Go ワークスペースと IDE を開く
Visual Studio Code を CLI から使用する準備ができたことを確認したら、Go ワークスペースを開くことができます。
新しいコマンド プロンプトまたはターミナル プロンプトを開きます。
次のコマンドを実行して、Go ワークスペース ディレクトリを開きます。
cd $GOPATH/src
cd %GOPATH%/src
次のコマンドを使用して、ワークスペースから Visual Studio Code を開きます。
code .
Visual Studio Code が起動されます。 左側に [エクスプローラー] ビューが表示され、右側に [ようこそ] ページが表示されます。
[エクスプローラー] ビューで、Go プロジェクトの [SRC] セクションが開きます (展開されます)。 このセクションは、プロジェクトの /src フォルダーです。 現在は空ですが、次の手順で、いくつかの内容を追加します。
手順 2: 新しいフォルダーと Go ファイルを作成する
Go プロジェクトにフォルダーとファイルを追加してみましょう。 Visual Studio Code で新しい項目を作成するには、いくつかの方法があります。
- ツールバー メニューでの操作:
- [ファイル]>[フォルダを開く] の順に選択し、新しいフォルダーを作成します。
- [ファイル]>[新しいファイル] を選択して、新しいファイルを開始します。
- [ようこそ] ページのリンク。これは、ツールバー メニューの操作と同様です。
- [エクスプローラー] ビューの [SRC] セクションの右側にあるアイコン。
- [新しいフォルダー] アイコンを選択します。 テキスト ボックスにフォルダー名を入力して、Enter キーを押します。
- [新しいファイル] を選択します。 テキスト ボックスにファイル名を入力して、Enter キーを押します。
Visual Studio Code で次の手順を完了します。 新しいファイルとフォルダーを作成するには、自分に最適なプロセスを使用します。
helloworld という名前の新しいフォルダーを作成します。
アプリ コード用に、main.go という名前の新しいファイルを作成します。
[エクスプローラー]>[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 ファイルに追加してみましょう。
main.go ファイルに、次のコードを追加します。
package main import "fmt" func main() { fmt.Println("Hello World!") }
ファイルを保存します。
タブやスペースなどのコードの書式設定について心配する必要はありません。 ファイルを保存するたびに、Visual Studio Code によってコードの書式設定が自動的に行われます。
手順 4: Go プログラムを実行する
Go プログラムは、コマンド プロンプトまたはターミナル プロンプトで実行できます。また、Visual Studio Code 内で実行されるターミナルでも実行できます。
既存のプロンプトを使用することも、新しいプロンプトを開くこともできます。 新しいプロンプトを開く場合、ディレクトリの場所をご使用の Go ワークスペースに変更することを忘れないでください。 また、必ず、Go ファイルがあるフォルダー ($GOPATH/src/helloworld) からプログラムを実行してください。
Visual Studio Code 内でターミナルを開く
スタンドアロンのコマンド プロンプトまたはターミナル プロンプトではなく Visual Studio Code 内でプログラムを実行する場合は、次の手順に従います。
Visual Studio Code で、[ターミナル] を選択し、[新しいターミナル] を選択します。
ターミナルの右上にあるドロップダウン ボックスで、[New Command Prompt](新しいコマンド プロンプト) を選択します。
ターミナルで、次のコマンドを実行して、ディレクトリの場所をご使用の 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
パッケージの重要性を確認できますか?
- Go ファイルで、最初の行のパッケージ名を変更します。
- ファイルを保存し、ターミナルでプログラムを再度実行します。
処理内容 "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 を使用せずにファイルを編集して、アプリを実行してみてください。 今度は、どのような出力が表示されますか?
課題: "別のインポートを追加する"
使用されていないインポートについて学習したことを確認できますか?
- Go ファイルを元のコードに復元します。
math
やio
などの別のインポート ステートメントを追加します。- ファイルを保存し、ターミナルでプログラムを再度実行します。
処理内容 使用されていないインポートは Visual Studio Code によって削除されますか? 削除される場合、それはいつですか?
- Go ファイルを再度編集します。ただし、Visual Studio Code は使用しません。
- ファイルを保存して、新しいプロンプトでプログラムを実行します。
処理内容 今度は、どのような出力が表示されますか?
回答を表示
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
関数を呼び出し、 画面に表示するテキスト メッセージを送信しました。
関数の詳細については、次のモジュールで説明します。