メインコンテンツにスキップ
モジュール 1 · レッスン 1 / 5コース内の 1/50~10 min
モジュールのレッスン (1/5)

変数と型

Go では、すべての変数はコンパイラに認識される 静的型 を持ちます。 宣言されている場合、変数の型を変更することはできません。この剛性はまったく異なります JavaScript または Python から — コンパイル時間を取得するために支払う代償です 実行時のエラーではなく、小さなバイナリで予測可能なエラー パフォーマンス。

2 種類の申告書

明示的なタイプの var

Go
var name string = "Ada"
var age int = 36
var active bool

(var active bool のように) 値を省略すると、変数は その型の ゼロ値 — これについては次のレッスンで戻ります。

短い宣言 :=

関数内で := を使用できます。これは、 右側の表現。それは慣用的な形式であり、あなたが使用するものです 90% の場合:

Go
name := "Ada"   // string
age := 36        // int
pi := 3.14       // float64
active := true   // bool

すぐに出会える基本タイプ

タイプ例メモ
int42サイズは CPU (32 または 64 ビット) によって異なります。
float643.1410 進リテラルのデフォルト
string"Ada"UTF-8、不変
booltrue、false「真実」はなく、純粋なブール値のみ
rune'A'int32 のエイリアスは、Unicode コード ポイントを表します。
byte0x7Fuint8 のエイリアス

int8/16/32/64、uint8/16/32/64、float32、complex64/128 もあります。 正確なサイズが必要な場合 (バイナリ解析、相互運用性など)。

複数の宣言

var ブロックまたは複数の := を使用して、複数の変数を宣言できます。

Go
var (
    name   string = "Ada"
    age    int    = 36
    active bool
)

x, y := 10, 20
a, b, c := "a", 2, true   // different types: no problem

宣言されているが使用されていない変数

Go は厳密です。宣言されていても使用されない 変数はコンパイルです 警告ではなくエラーです。未使用の import にも同じことが当てはまります。

Go
func main() {
    x := 42
    // error: x declared and not used
}

ルールを一時的に無効にするには、_ (空白の識別子) を使用します。

Go
_ = x

あなたの番です

運動#go.m1.l1.e1
試行回数: 0読み込み中…

var を使用して、値 'Ada' を持つ文字列型の変数名を宣言し、それを出力します。

エディターを読み込み中…
ヒントを表示

長い形式は `var <name> <type> = <value>` です。

3 回の試行後に解決策が利用可能になります

運動#go.m1.l1.e2
試行回数: 0読み込み中…

1 行で、:= を使用して、年齢に 36 を割り当て、市区町村に「Roma」を割り当て、両方を出力します。

エディターを読み込み中…
ヒントを表示

複数の変数を一度に割り当てることができます: `a, b := 1, "due"`。

3 回の試行後に解決策が利用可能になります

Quiz#go.m1.l1.e3
準備完了

次の宣言のうち、関数の外側に配置するとコンパイル エラーが発生するものはどれですか?

Go
// (a)
var name string = "Ada"

// (b)
age := 36

// (c)
const PI = 3.14
回答の選択肢

要約

  • 静的型。:= によって自動的に推論されるか、var で宣言されます。
  • := 関数内のみ。パッケージ レベルのみ var/const。
  • 未使用の変数とインポート = コンパイル エラー: _ を使用してそれらを沈黙させます。
  • int/float64/string/bool は、日常的なケースの 90% をカバーします。