Go 語言的控制結構是一個重要的概念,它可以讓開發者更有效率地撰寫程式碼,並且更容易地控制程式的流程。在本文中,我們將詳細介紹 Go 語言中的控制結構,包括 if-else、for 迴圈、switch-case、defer 等等。
If-Else 條件判斷
If-Else 條件判斷是 Go 語言中最基本的控制結構,它可以讓開發者根據條件來決定程式的流程。例如,以下程式碼會根據變數 x 的值來判斷是否輸出 “x is greater than 10″:
if x > 10 { fmt.Println("x is greater than 10") }
如果要判斷多個條件,可以使用 else if:
if x > 10 { fmt.Println("x is greater than 10") } else if x < 10 { fmt.Println("x is less than 10") }
如果沒有任何條件符合,可以使用 else 來指定一個預設的流程:
if x > 10 { fmt.Println("x is greater than 10") } else if x < 10 { fmt.Println("x is less than 10") } else { fmt.Println("x is equal to 10") }
For 迴圈
For 迴圈是 Go 語言中最常用的控制結構,它可以讓開發者重複執行一段程式碼,直到條件不再成立為止。例如,以下程式碼會重複執行 10 次:
for i := 0; i < 10; i++ { fmt.Println(i) }
如果要重複執行一個無限次數的迴圈,可以使用無限迴圈:
for { fmt.Println("Infinite loop") }
Switch-Case
Switch-Case 是 Go 語言中另一個常用的控制結構,它可以讓開發者根據不同的條件來執行不同的程式碼。例如,以下程式碼會根據變數 x 的值來執行不同的程式碼:
switch x { case 1: fmt.Println("x is 1") case 2: fmt.Println("x is 2") default: fmt.Println("x is not 1 or 2") }
Defer
Defer 是 Go 語言中一個特殊的控制結構,它可以讓開發者延遲執行一段程式碼,直到函式執行完畢為止。例如,以下程式碼會在函式執行完畢後才會執行 fmt.Println():
func foo() { defer fmt.Println("Done") // Do something }
這個特性可以讓開發者更容易地撰寫程式碼,並且可以確保在函式執行完畢後會執行一些必要的程式碼,例如關閉檔案、釋放資源等等。
總結
本文介紹了 Go 語言中的控制結構,包括 if-else、for 迴圈、switch-case、defer 等等。這些控制結構可以讓開發者更有效率地撰寫程式碼,並且更容易地控制程式的流程。