golang 中的流程控制語句用于控制代碼執(zhí)行流,包括基本語句(if else、switch、for)和高級語句(break、continue、defer)。這些語句可以用于根據(jù)條件執(zhí)行代碼塊(if else)、選擇執(zhí)行多個代碼塊(switch)、重復(fù)執(zhí)行代碼(for)、退出或跳過循環(huán)(break/continue)、在函數(shù)返回前執(zhí)行代碼(defer)。
掌握 Golang 中的流程控制語句技巧
在 Golang 中,流程控制語句決定了程序執(zhí)行的順序流。了解這些語句的用法對于編寫高效且可讀的代碼至關(guān)重要。
基本流程控制語句
if else: 用于根據(jù)條件執(zhí)行代碼塊。
if condition {
// 如果條件為 true,執(zhí)行此代碼塊
} else {
// 如果條件為 false,執(zhí)行此代碼塊
}
登錄后復(fù)制
switch: 根據(jù)一個表達式在多個代碼塊之間進行選擇。
switch condition {
case value1:
// 如果條件等于 value1,執(zhí)行此代碼塊
case value2:
// 如果條件等于 value2,執(zhí)行此代碼塊
default:
// 如果條件不等于任何給定值,執(zhí)行此代碼塊
}
登錄后復(fù)制
for: 用于重復(fù)執(zhí)行一段代碼,直到條件滿足為止。
for condition {
// 重復(fù)執(zhí)行此代碼塊直至條件為 false
}
登錄后復(fù)制
高級流程控制語句
break: 從循環(huán)或 switch 語句中退出。
for {
if condition {
break // 跳出循環(huán)
}
}
登錄后復(fù)制
continue: 跳過循環(huán)的當(dāng)前迭代,繼續(xù)執(zhí)行下一迭代。
for {
if condition {
continue // 跳過本次迭代
}
}
登錄后復(fù)制
defer: 在函數(shù)返回之前執(zhí)行一段代碼。
func cleanup() {
// 清理代碼
}
func main() {
defer cleanup() // 在函數(shù)返回前執(zhí)行 cleanup()
}
登錄后復(fù)制
實戰(zhàn)案例
使用 switch 語句解析 HTTP 狀態(tài)碼:
import "net/http"
func handleStatusCode(w http.ResponseWriter, r *http.Request) {
switch r.StatusCode {
case http.StatusOK:
w.WriteHeader(http.StatusOK)
w.Write([]byte("OK"))
case http.StatusNotFound:
w.WriteHeader(http.StatusNotFound)
w.Write([]byte("Not Found"))
default:
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte("Internal Server Error"))
}
}
登錄后復(fù)制
使用 break 語句退出循環(huán):
func findIndex(arr []int, value int) int {
for i, v := range arr {
if v == value {
return i // 找到值后跳出循環(huán)
}
}
return -1 // 未找到值,返回 -1
}
登錄后復(fù)制
通過理解和掌握 Golang 中的流程控制語句,你可以編寫更強大、更復(fù)雜的程序,滿足各種需求。






