← 記事一覧へ

Go 学習記録(2):構成と実行

Go 基礎学習の第 2 回。文法、実例、学習の過程を記録します。

Go 開発の基礎

プログラムの基本構成

最初に開発用ディレクトリを作ります。例えば、次の構成です。

go_project

  • src
    • go_code
      • project01
        • main
          • hello.go
        • package
      • project02
        • main
        • package

hello.go は簡単な Go プログラムです。

package main
import "fmt"
func main(){
    fmt.Println("hello world!")
}

説明: (1) Go のソースは .go で終わります。各ファイルは一つのパッケージに属し、パッケージは複数のファイルを含めます。 (2) package main は実行プログラムのパッケージです。ライブラリは別の名前を使えます。 (3) すべての Go ソースはパッケージに属します。 (4) import “fmt” は書式処理の標準パッケージを読み込みます。fmt.Println などを使えます。 (5) func main() は実行開始点です。func は関数を示し、main は名前です。 (6) fmt.Println(“hello world!”) はメッセージを出力します。

Go の実行の流れ

実行までの手順

まず Go のプログラムを書きます。

go build で実行ファイルにコンパイルします。

go build hello.go

実行ファイルを起動して、結果を確認します。

go run は、一つのコマンドでコンパイルと実行を行います。作業ディレクトリに実行ファイルを残しませんが、コンパイル自体は行うため、繰り返し実行にはビルドの時間も含まれます。

go run hello.go

基本の流れは、ソースを書く → 実行ファイルを作る → 実行する、です。

go

ビルド済みの実行ファイルなら、コンパイルの時間を省けます。 go run は開発や簡単な確認に便利で、配布には通常ビルド済みのファイルを使います。

二つの方法の違い

(1) Go はコンパイル型で、実行前にソースを実行可能なコードへ変換します。

(2) OS、アーキテクチャ、実行時依存が適合する別の機械へ、実行ファイルをコピーして起動できます。

(3) go run でソースを実行するには、その機械にも Go のツールチェーンが必要です。

(4) Go の依存は通常バイナリへリンクされます。サイズは増えますが、配布しやすくなります。ただし cgo では外部のネイティブ依存が生じる場合があります。

コンパイルと実行

コンパイル

コンパイラがソースをバイナリに変換します。

go build -o test.exe hello.go のように出力名を指定できます。Windows は通常 .exe を使い、Linux では拡張子がなくても構いません。

ソースが正しければ成功します。誤りがあれば位置を示す診断が出て、ビルドは失敗します。

実行

  1. ビルドした実行ファイルを起動します。

  2. go run でコンパイルと実行をまとめて行います。

文法と注意点

Go のソースは .go で終わります。実行ファイルの名前は対象 OS によって異なり、Windows では通常 .exe を使います。

実行プログラムは main から始まります。

大文字と小文字を区別します。

関数は文で構成され、通常は明示的なセミコロンが不要です。

規則に従ってセミコロンが自動挿入されます。通常は 1 行に 1 文を書きますが、明示的な区切りを使えば複数文も記述できます。

未使用の import とローカル変数はコンパイルエラーになります。

括弧は対応させる必要があり、不足すると構文エラーです。

エスケープ文字

  • \t:タブ
  • \n:改行
  • \:バックスラッシュ
  • “:二重引用符
  • \r:キャリッジリターン

Go のコメント

  1. 行コメント://

  2. ブロックコメント:/* */

コードの書式

  1. 関数や処理の説明には、通常は行コメントを使います。

  2. 字下げと空行をそろえます。エディタでは Tab と Shift+Tab を使えます。gofmt -w main.go は整形結果を書き戻し、gofmt main.go は表示します。

  3. 演算子の空白は gofmt に任せます。

  4. 関数の波括弧 go

  5. キーワードと演算子の間隔をそろえます。

  6. 関数、変数、定数、構造体フィールドには混合ケースの名前を使います。

  7. 読みやすい長さにします。80 文字は規約の目安で、言語の制限ではありません。

Go の公式学習資料

公式サイト:実行と学習

中国語のガイド:中国語版。ほかの言語もあります

パッケージの文書:パッケージの使い方と説明

オンラインのチュートリアルでは、例を実行できます。 Run ボタンでコードを動かします。

Go の標準 API

API とは

Application Programming Interface は、関数、型、メソッドなど、部品が外部に提供する操作の集合です。

Go には多くの標準ライブラリがあります。

Go の中国語コミュニティ:中国語でのパッケージの紹介と使い方

Go では、パッケージ → ソースファイル → 関数、という構成です。 go

公開された関数を使う前に、パッケージを import します。

よくあるエラーと対処

コメントは読みやすさを高め、コードを説明するために書きます。

  1. ファイルが見つからない。 ファイル名と作業ディレクトリを確認します。

  2. 構文エラー。 括弧や引用符の対応、綴り、文法を確認します。コンパイラの診断で位置を探し、修正します。

数字の「1」と小文字の「l」は、間違えないように注意します。

この記事の日付について

旧サイトに記載された日付を保持しています。実際に書き始めた時期は、これより早い可能性があります。

同じシリーズ · Go の基礎学習

前の記事Go 学習記録(1):Windows で環境を構築する ←次の記事Go 学習記録(3):変数と定数 →