一、變量的聲明與初始化

Go語言中的變量聲明非常靈活,支持多種方式:

1. 標準聲明(var關鍵字)

var name string = "Alice"
var age int = 25

也可以先聲明再賦值:

var score int
score = 95

2. 類型推導

Go會根據初始值自動推斷變量類型,因此可以省略類型:

var city = "Beijing" // 自動推斷為string

3. 短變量聲明(:=)

在函數內部,最常用的是短變量聲明,簡潔高效:

name := "Bob"
height := 175.5

注意::= 只能在函數內部使用,不能用於全局變量聲明。

4. 批量聲明

Go支持一次性聲明多個變量:

var (
    x int = 10
    y float64 = 3.14
    z string
)

二、常量(const)

常量是在編譯時確定的值,不可更改。使用 const 關鍵字定義:

const Pi = 3.14159
const MaxUsers = 1000

常量也支持批量聲明:

const (
    StatusOK = 200
    StatusNotFound = 404
    StatusServerError = 500
)

Go還支持iota 枚舉器,用於自動生成遞增值:

const (
    Red = iota  // 0
    Green       // 1
    Blue        // 2
)

三、控制結構

Go語言的控制結構簡潔而強大,沒有括號,但必須使用大括號 {}

1. if 語句

基本形式:

if age >= 18 {
    fmt.Println("成年人")
} else {
    fmt.Println("未成年人")
}

Go允許在 if 條件前執行一個初始化語句:

if score := getScore(); score >= 60 {
    fmt.Println("及格")
}
// 注意:score 在 if 塊外不可用

2. for 循環

Go只有一種循環結構——for,但它功能強大。

  • 經典三段式:
for i := 0; i < 10; i++ {
    fmt.Println(i)
}
  • 類似 while 循環:
sum := 1
for sum < 100 {
    sum += sum
}
  • 無限循環:
for {
    // 永久執行,需配合 break
}

3. switch 語句

Go的 switch 不需要 break,默認不會穿透(fallthrough),除非顯式使用 fallthrough 關鍵字。

day := "Monday"
switch day {
case "Monday":
    fmt.Println("星期一")
case "Tuesday":
    fmt.Println("星期二")
default:
    fmt.Println("其他日子")
}

switch 也可以不帶條件,此時等價於 switch true,常用於多條件判斷:

age := 20
switch {
case age < 13:
    fmt.Println("兒童")
case age < 20:
    fmt.Println("青少年")
default:
    fmt.Println("成人")
}

四、小結

本章我們系統學習了Go語言中變量與常量的聲明方式,以及三種核心控制結構(if、for、switch)。這些語法看似簡單,卻是構建複雜邏輯的基礎。掌握它們,你就能寫出結構清晰、邏輯嚴謹的Go程序。