關(guān)于條件語句,需要注意以下幾點(diǎn): 條件語句不需要使用括號(hào)將條件包含起來(); 無論語句體內(nèi)有幾條語句,花括號(hào){}都是必須存在的; 左花括號(hào){必須與if或者else處于同一行; 在if之后,條件語句之前,可以添加變量初始化語句,使用;間隔; 在有返回值的函數(shù)中,不允許將“最終的”return語句包含在if…else…結(jié)構(gòu)中, 否則會(huì)編譯失敗: function ends without a return statement。 失敗的原因在于,Go編譯器無法找到終止該函數(shù)的return語句。編譯失敗的案例如下:
func example(x int) int { if x == 0 { return 5 } else { return x }}在使用switch結(jié)構(gòu)時(shí),我們需要注意以下幾點(diǎn): 左花括號(hào){必須與switch處于同一行; 條件表達(dá)式不限制為常量或者整數(shù); 單個(gè)case中,可以出現(xiàn)多個(gè)結(jié)果選項(xiàng); 與C語言等規(guī)則相反,Go語言不需要用break來明確退出一個(gè)case; 只有在case中明確添加fallthrough關(guān)鍵字,才會(huì)繼續(xù)執(zhí)行緊跟的下一個(gè)case; 可以不設(shè)定switch之后的條件表達(dá)式,在此種情況下,整個(gè)switch結(jié)構(gòu)與多個(gè)if…else…的邏輯作用等同。
示例1:
sum := 0 for i := 0; i < 10; i++ { sum += i }可以看到比較大的一個(gè)不同在于for后面的條件表達(dá)式不需要用圓括號(hào)()包含起來。Go語言還進(jìn)一步考慮到無限循環(huán)的場(chǎng)景,讓開發(fā)者不用寫無聊的for (;;) {} 和 do {} while(1);而直接簡(jiǎn)化為如下的寫法: 示例2:
sum := 0 for { sum++ if sum > 100 { break } }在條件表達(dá)式中也支持多重賦值,如下所示:
a := []int{1, 2, 3, 4, 5, 6}for i, j := 0, len(a) –1; i < j; i, j = i + 1, j –1 { a[i], a[j] = a[j], a[i]}Go語言的for循環(huán)同樣支持continue和break來控制循環(huán),但是它提供了一個(gè)更高級(jí)的 break,可以選擇中斷哪一個(gè)循環(huán),如下例:
for j := 0; j < 5; j++ { for i := 0; i < 10; i++ { if i > 5 { break JLoop } fmt.Println(i) }}JLoop:// ...本例中,break語句終止的是JLoop標(biāo)簽處的外層循環(huán)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注