這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
指標
Go雖然保留了指標,但與其他程式設計語言不同的是,在Go當中不支援指標運算以及“->”運算子,而直接採用“.”選擇符來操作指標目標對象的成員
- 操作符 “&”取變數地址,使用“ * ” 通過指標間接訪問目標對象
- 預設值為nil而非NULL
遞增遞減語句
在Go當中,++與– 是作為語句而並不是作為運算式。
選擇語句switch
- 可以使用任何類型或運算式作為條件陳述式
- 不需要寫break,一旦條件符合自動終止
- 如希望繼續執行下一個case,需使用fallthrough語句
- 支援一個初始設定式(可以是並行方式),右側需跟分好
- 左大括弧必須和條件陳述式在同一行
12345678910111213141516171819202122232425262728293031323334353637 |
func main(){a := 1switch a {case 0:fmt.Println("a=0")case 1:fmt.Println("a=1")}fmt.Println(a)}func main(){a := 1switch {case a >= 0:fmt.Println("a=0")fallthroughcase a >= 1:fmt.Println("a=1")}fmt.Println(a)}func main(){switch a := 1; {case a >= 0:fmt.Println("a=0")fallthroughcaes a >= 1:fmt.Println("a=1")}} |
跳躍陳述式goto break continue
- 三個語句都可以配合標籤使用
- 標籤名區分大小寫,若不使用會造成編譯錯誤
- break 和continue配合標籤可用於多層迴圈的跳出
- goto 是調整執行位置,與其他2個語句配合標籤的結果並不相同
1234567891011121314151617181920212223242526 |
func main(){LABEL:for{for i := 1;i < 10;i++ {if i > 2{break LABEL}else{fmt.Println(i)}}}}func main(){LABEL:for i := 0;i < 10;i++ {for {fmt.Println(i)continue LABEL}}} |