一、變量的聲明與初始化
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程序。