A Tour of Go: Basics 2
For
For語句有三個基本部分組成,以分號隔開:
- 初始語句:只在第一次迴圈開始前執行,通常就是變數定義和初始化,這裡定義的變數作用範圍只在For迴圈本身。
- 條件表示式:每一次迴圈開始前執行,當false結束迴圈。
- post語句:每一次迴圈結束後執行。
技巧:
- 初始語句和post語句是可以省略的。
- 條件表示式也可以省略,就是死迴圈。
- Go語言只有一個迴圈結構,就是for語句。while語句在Go中也是由for表示。
// for sum := 1 for ; sum < 1000; { sum += sum } // while sum := 1 for sum < 1000 { sum += sum }
注意點:
- 與其他語言不同,三個語句不需要用括號括起來。
- 迴圈體需要用大括號括起來。
If
跟for一樣,if語句可以包含一個初始語句,作用範圍限於if本身(包括else)。同樣地,if語句也不需要小括號,但是需要大括號。
Switch
Switch是if else語句在某些場景下的更好選擇。匹配到等於condition的case並執行,然後停止switch,不需要顯式break。
同樣可以有初始語句。
條件可以為空,表示switch true。
Defer
推遲到周圍函式都執行完以後再執行。
被推遲的函式是放在stack裡的,因此遵循後進先出原則。
應用場景比如用於清理動作等,參見:ofollow,noindex" target="_blank">https://blog.golang.org/defer-panic-and-recover