表記法

構文は拡張バッカス・ナウア記法(EBNF)の変種を使用して指定されています:

Syntax      = { Production } .
Production  = production_name "=" [ Expression ] "." .
Expression  = Term { "|" Term } .
Term        = Factor { Factor } .
Factor      = production_name | token [ "…" token ] | Group | Option | Repetition .
Group       = "(" Expression ")" .
Option      = "[" Expression "]" .
Repetition  = "{" Expression "}" .

プロダクションは項から構築された式であり、以下の演算子を優先度の低い順に使用します:

|   選択肢
()  グループ化
[]  オプション(0または1回)
{}  繰り返し(0からn回)

小文字のプロダクション名は字句(終端)トークンを識別するために使用されます。非終端記号はCamelCaseで表記されます。字句トークンは二重引用符 "" またはバッククォート `` で囲まれています。

a … b の形式は、a から b までの文字の集合を選択肢として表します。水平省略記号 は、この仕様書の他の場所でも、さらに指定されていないさまざまな列挙やコードスニペットを非公式に示すために使用されています。文字 (3つの文字 ... とは対照的に)はGo言語のトークンではありません。

Go 1.xx 形式のリンクは、説明されている言語機能(またはその一部)が言語バージョン1.xxで変更または追加されたことを示し、したがって最低でもそのバージョンが必要であることを示します。詳細については、付録リンクされたセクションを参照してください。