Go的100天之旅 07條件和迴圈

2021-10-08 14:21:34 字數 1628 閱讀 1178

迴圈語句

go的條件語句和其它語言類似,主要是不支援三目運算子所以?:這種條件判斷是不支援的。go提供的條件判斷語句主要有if還有switch這兩種形式下面是

if的幾種寫法,基本上和其它語言是一致的

if 條件  else 

if 條件 else if 條件 else

switch和其它語言類似,都是類似下面的寫法:

switch var1
有幾點差異的地方是,預設不需要breakcase被匹配上了之後,就會進入分支,後面的case都不會匹配和執行。但是fallthrough可以強制執行下一條case,例如下面的**:

package main

func main()

}

輸出為:

case true 1

case false 2

case後面可以是任何型別的變數,常量,或者表示式,但是case之間的型別必須儲存一致。

go是沒有while的,它提供了兩種可以進行迴圈的操作forgoto

for的操作主要如下:

for 初始化;條件;執行 

for 條件

for //無限迴圈,可以通過break跳出

for可以通過continue執行下條迴圈,也可以break跳出迴圈。和其它語言for還有乙個差異就是for range可以對陣列 slice map進行遍歷:

package main

func main()

for i, v := range a

}//輸出

0 11 2

2 3

這裡i等於值v在陣列中的下標。

gogoto保留了下來,它不僅僅用於迴圈,可以跳轉到一段有標籤的**塊goto label

下面是乙個簡單的使用:

package main

func main()

}

輸出:

123

45

goto是乙個比較有爭議的操作,反對使用它的人認為它會讓**邏輯變得複雜,**的可讀性降低。支援的人認為它可以使用靈活,更加容易擴充套件,比如出現了異常或者需要統一處理邏輯,可以用goto直接進行跳轉。

Go的100天之旅 01初識Go

上個世紀70年代ken thompson和dennis m.ritchie合作發明了unix作業系統同時dennis m.ritchie發明了c語言。2007年的robert griesemer,rob pike和ken。thompson三位大牛在google公司開始編寫和設計go語言。2009年g...

Go的100天之旅 03變數

變數這個詞 於數學,類似方程中的x y,代表的是儲存在計算機中的值。這裡主要介紹go和其它程式語言不一樣的地方,在前面我們提到過,go是一門靜態語言。靜態語言區別動態語言乙個重要的特性就是變數的型別不可變,一般是在宣告的時候就指定型別,之後就不可修改它的型別,而動態語言可以隨時修改變數的型別。go的...

Go的100天之旅 06陣列和Slice

go的陣列和其它語言基本上一樣,是長度固定的特定型別元素組成的序列,這基本上是所有語言陣列的特性。和其它語言相比差異主要在宣告和初始化的寫法上,下面是簡單宣告乙個陣列 var a 5 int fmt.println a 0 fmt.println fmt.println a len a 1 上面的a...