Go言語における"Hello, World!"プログラムの作成と実行

Go言語で最初のプログラムを作成する前に、開発環境を整える必要があります。Goでは、ソースコードやコンパイル済みバイナリを管理するための「ワークスペース」という概念が用いられます。

Goワークスペースの構築

Goのワークスペースは、通常、ホームディレクトリ直下のgoディレクトリに設定されます。Unix系OS(macOS、Linux)では$HOME/go、WindowsではC:\Users\YourUsername\goとなります。GOPATH環境変数を設定することで、別の場所をワークスペースとして指定することも可能ですが、ここでは推奨されるパスを使用します。

ワークスペース内にsrcディレクトリを作成し、その中にプロジェクトごとのサブディレクトリを作成します。ここではhelloという名前のプロジェクトを作成し、その中にhelloworld.goというファイルを作成します。

ディレクトリ構造は以下のようになります。

go/
  src/
    hello/

helloディレクトリ内に、以下の内容でhelloworld.goファイルを作成します。

package main

import "fmt"

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

ファイル作成後のディレクトリ構造は以下のようになります。

go/
  src/
    hello/
      helloworld.go

Goプログラムの実行方法

Goプログラムの実行には、主に以下の2つの方法があります。

1. go run コマンドを使用する

コマンドラインで、以下のコマンドを実行します。

go run /path/to/your/workspace/src/hello/helloworld.go

/path/to/your/workspaceは、ご自身のGoワークスペースのパスに置き換えてください(例: $HOME/go または C:/Users/YourUsername/go)。

実行すると、コンソールにHello Worldと表示されます。

2. go install コマンドを使用する

まず、以下のコマンドでプログラムをビルド・インストールします。

go install hello

このコマンドは、ワークスペース内のsrc/helloディレクトリにあるhelloパッケージを検索し、コンパイルして実行可能ファイルを生成します。生成された実行可能ファイルは、ワークスペースのbinディレクトリに配置されます(Windowsではhello.exe)。

インストール後、以下のコマンドでプログラムを実行できます。

/path/to/your/workspace/bin/hello

go install実行後のディレクトリ構造は以下のようになります。

go/
  bin/
    hello          # Windowsでは hello.exe
  src/
    hello/
      helloworld.go

コード解説

package main // Goプログラムの先頭にはパッケージ名を宣言する必要がある。これは「main」パッケージであることを示す。

import "fmt" // 「fmt」パッケージをインポートする。「Println」関数はこのパッケージに含まれている。

// 関数外では変数、定数、型定義などは可能だが、実行ロジックは記述できない。

func main() { // 「main」関数はプログラムのエントリーポイントとなる。
    fmt.Println("Hello World") // 標準出力に「Hello World」を出力する。
}

/*
- package main: Goファイルは最初にパッケージ名を宣言します。パッケージはコードのモジュール化と再利用を可能にします。ここでは`main`パッケージを指定しています。
- import "fmt": `fmt`パッケージをインポートします。このパッケージは、標準入出力関数(例: `Println`)を提供します。
- func main(): `main`関数は特別な関数であり、Goプログラムの実行開始点となります。`main`パッケージ内に定義される必要があります。波括弧 `{}` は関数の開始と終了を示します。
- fmt.Println("Hello World"): `fmt`パッケージの`Println`関数は、引数として渡された文字列を標準出力に出力します。
*/

タグ: Go helloworld go run go install パッケージ

10月29日 15:22 投稿