Go 言語プログラミング入門ガイド

GolangBeginner
オンラインで実践に進む

はじめに

この実験では、公式に Go 言語のプログラミングの学習を始めます。基本概念を学び、簡単な Go プログラムを自作します。

学習ポイント

  • 標準出力文
  • コード構造
  • プログラムの実行
  • fmtパッケージの一般的な関数

💡 最初の Go プログラム

最初の Go プログラムを作成してみましょう。サイドバーを右クリックして、プロジェクトフォルダに helloWorld.go という名前の新しいファイルを作成します。

画像の説明

注:より良い体験のため、WebIDE (VS Code のような) を使用することをお勧めします。WebIDE の使用ガイドについては、ここ で詳しく学ぶことができます。

または、touch コマンドを使用して新しいファイルを作成することもできます。

touch helloWorld.go

次に、ファイルを開いて以下のコードを記入します。

package main

import "fmt"

func main() {
    fmt.Println("hello, world")
}

最初の行 package main は、このプログラムが main パッケージに属することを示しています。2 行目の import "fmt" は、Go の fmt パッケージをインポートしており、これによりテキストの入出力をフォーマットすることができます。main 関数はプログラムの実行が始まる場所であり、その中の fmt.Println("hello, world") により、hello, world がターミナルに表示されます。

プログラムを実行するには、ターミナルを開いて以下のコマンドを入力します。

go run helloWorld.go

すべてが正しく設定されていれば、以下の出力が表示されるはずです。

hello, world

これが簡単な "Hello World" プログラムです。次に、コードと操作を 1 行ずつ説明しましょう。

プログラム構造と構文

Go 言語では、パッケージがコード管理の基本単位です。すべての Go プログラムは package 宣言から始まります。この場合、package main は Go に対して、このコードが実行されるメインプログラムの一部であることを伝えます。

import "fmt" 文は、入出力に使用される Go の fmt パッケージをインポートします。Go には豊富な標準ライブラリがあり、これにより多くのタスクを簡単に行うことができます。前のステップで見たように、fmt パッケージはテキスト出力をフォーマットするために使用されます。

次に、main 関数を定義します。

func main() {
}

Go 言語では、すべての関数は func で始まる必要があります。注意してください、開き括弧 { は行の末尾に置かれています。これは Go の慣例であり、開き括弧を新しい行に置く他のプログラミング言語とは異なります。

誤って開き括弧を新しい行に置くと、次のようになります。

func main()
{
}

コンパイルエラーが発生します。

$ go run helloWorld.go
### command-line-arguments
./helloWorld.go:7:1: syntax error: unexpected semicolon or newline before {

これは、Go が開き括弧を同じ行に直接置くことを期待しているためです。

プログラムの重要な文は fmt.Println("hello, world") で、これは fmt パッケージの Println 関数を呼び出して、文字列 "hello, world" をコンソールに出力します。この関数は自動的に文字列の末尾に改行文字を追加します。

プログラムの実行

Go 言語はコンパイル言語ですが、go run コマンドを使用すると、Go はまずソースコードをコンパイルしてから、生成された実行可能ファイルを実行します。したがって、次のコマンド:

go run helloWorld.go

は、次の 2 つのコマンドを実行するのと同じです。

## プログラムをコンパイルする
go build helloWorld.go

## コンパイルされたプログラムを実行する
./helloWorld

新しい例を試すために、他のゴーファーに挨拶するようにプログラムを変更しましょう。helloGopher.go という名前の新しいファイルを作成し、コードを次のように置き換えます。

touch コマンドを使用して新しいファイルを作成できます。

touch helloGopher.go
package main

import "fmt"

func main() {
 fmt.Println("hello Gopher.")
 fmt.Println("hello Gopher.")
 fmt.Println("hello Gopher.")
}

今回は、go run ではなく go build を使用してプログラムをコンパイルし、次に生成された実行可能ファイルを実行します。

## プログラムをコンパイルする
go build helloGopher.go

## コンパイルされた実行可能ファイルを実行する
./helloGopher

これにより、次のような出力が表示されます。

hello Gopher.
hello Gopher.
hello Gopher.

fmt パッケージの一般的な関数

ステップ 1 では、fmt パッケージの Println() 関数を使用して出力を表示しました。fmt パッケージは Go 言語で最も一般的に使用されるパッケージの 1 つであり、出力をフォーマットするためのいくつかの関数を提供しています。

以下に 3 つの一般的な出力関数を示します。

  1. fmt.Print() – 改行なしでテキストを出力します。
  2. fmt.Println() – 改行付きでテキストを出力します。
  3. fmt.Printf() – フォーマットされたテキストを出力します。

これらの関数についてもう少し詳しく見てみましょう。fmt.go という名前の新しいファイルを作成し、以下のコードを入力します。

package main

import "fmt"

func main() {
    // 標準出力
    fmt.Print("hello")
    fmt.Print("world")

    // Println は標準出力の後に改行文字を追加します
    fmt.Println()
    fmt.Println("labex")

    // Printf はフォーマットされた出力を提供します
    fmt.Printf("%s\n", "London")
}

go run コマンドを使用してプログラムを実行します。

go run fmt.go

解説:

  • fmt.Print("hello")fmt.Print("world") は、Print が改行を追加しないため、同じ行にテキストが出力されます。
  • fmt.Println() は、行を区切るために改行を出力します。
  • fmt.Printf("%s\n", "London") は、文字列 "London" のための %s プレースホルダを使用して出力をフォーマットします。

以下は、これらの関数の簡単な比較です。

関数 標準出力 改行 フォーマットされた出力
Print × ×
Println ×
Printf × ×

fmt パッケージはまた、入力の読み取り、エラー処理などの他の関数も提供しており、後の演習で扱います。

まとめ

この実験では、最初の Go プログラムを書き、Go プログラムの構造について学び、出力用の fmt パッケージの基本的な機能を調べました。また、Go プログラムを実行する練習をし、PrintPrintlnPrintf の違いを学びました。これで、Go の構文とプログラムの実行に関する基本的な理解が得られたはずです。