Go言語の基本構文

前の章でGo言語の基本構成を学びました。この章ではGo言語の基本構文を学習します。


Goのトークン

Goプログラムは複数のトークンから構成され、キーワード、識別子、定数、文字列、記号などがあります。例えば、次のGO文は6つのトークンから構成されています:

fmt.Println("Hello, World!")

6つのトークンは(各行に1つ):

1. fmt
2. .
3. Println
4. (
5. "Hello, World!"
6. )

行区切り文字

Goプログラムでは、1行が1つの文の終わりを表します。各文はC系言語のようにセミコロン ; で終える必要はありません。これらの作業はGoコンパイラが自動的に行うからです。

複数の文を同じ行に書く場合は、 ; を使って人為的に区切る必要がありますが、実際の開発ではこの方法は推奨されません。

以下は2つの文です:

fmt.Println("Hello, World!")
fmt.Println("サンプル:example.com")

コメント

コメントはコンパイルされません。各パッケージには関連するコメントを付けるべきです。

一行コメントは最も一般的なコメント形式で、どこでも // で始まる一行コメントを使用できます。複数行コメントはブロックコメントとも呼ばれ、 /* で始まり */ で終わります。例:

// 单行注释
/*
 Author by サンプル
 我是多行注释
 */

識別子

識別子は変数や型などのプログラム実体に名前を付けるために使われます。識別子は実際には1つまたは複数の英字(A~Zおよびa~z)、数字(0~9)、アンダースコア_で構成される並びですが、最初の文字は英字またはアンダースコアでなければならず、数字は使えません。

以下は有効な識別子です:

mahesh   kumar   abc   move_name   a_123
myname50   _temp   j   a23b9   retVal

以下は無効な識別子です:

  • 1ab(数字で始まる)
  • case(Go言語のキーワード)
  • a+b(演算子は許可されない)

文字列の連結

Go言語の文字列連結は、+によって実現できます:

実例

package main
import "fmt"
func main() {
    fmt.Println("Google" + "サンプル")
}

上記の例の出力結果は次のとおりです:

Googleサンプル

キーワード

以下に、Goコードで使用される25のキーワードまたは予約語を示します:

breakdefaultfuncinterfaceselect
casedefergomapstruct
chanelsegotopackageswitch
constfallthroughifrangetype
continueforimportreturnvar

上記のキーワード以外にも、Go言語には36の定義済み識別子があります:

append bool byte cap close complex complex64 complex128 uint16
copy false float32 float64 imag int int8 int16 uint32
int32 int64 iota len make new nil panic uint64
print println real recover string true uint uint8 uintptr

プログラムは一般に、キーワード、定数、変数、演算子、型、関数から構成されます。

プログラムでは以下の区切り文字が使用されます:括弧 ()、角括弧 []、波括弧 {}。

プログラムでは以下の句読点が使用されることがあります:.、,、;、:と…。


Go言語のスペース

Go言語では、スペースは通常、識別子、キーワード、演算子、式を区切ってコードの可読性を高めるために使われます。

Go言語では変数の宣言はスペースで区切る必要があります。例:

var x int
const Pi float64 = 3.14159265358979323846

演算子とオペランドの間にスペースを使うとプログラムが読みやすくなります:

スペースなし:

fruit=apples+oranges;

変数と演算子の間にスペースを入れると、プログラムが見栄え良くなります。例:

fruit = apples + oranges; 

キーワードと式の間にはスペースを使用する必要があります。

例:

if x > 0 {
    // do something
}

関数呼び出しでは、関数名と左にある等号の間にスペースを使い、引数の間にもスペースを使う必要があります。

例:

result := add(2, 3)

文字列のフォーマット

Go言語では、次のようにしてfmt.Sprintf 或 fmt.Printf文字列をフォーマットして新しい文字列に代入します:

  • Sprintfフォーマット引数に基づいてフォーマットされた文字列を生成し、その文字列を返します。
  • Printfフォーマット引数に基づいてフォーマットされた文字列を生成し、標準出力に書き込みます。

Sprintfの例

package main

import (
    "fmt"
)

func main() {
   // %d は整数を表し、%s は文字列を表します
    var stockcode=123
    var enddate="2020-12-31"
    var url="Code=%d&endDate=%s"
    var target_url=fmt.Sprintf(url,stockcode,enddate)
    fmt.Println(target_url)
}

出力結果は次のとおりです:

Code=123&endDate=2020-12-31

Printfの例

package main

import (
    "fmt"
)

func main() {
   // %d は整数を表し、%s は文字列を表します
    var stockcode=123
    var enddate="2020-12-31"
    var url="Code=%d&endDate=%s"
    fmt.Printf(url,stockcode,enddate)
}

出力結果は次のとおりです:

Code=123&endDate=2020-12-31

詳細は以下を参照してください:

その他の拡張