初識golang之流程式控制制

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 if: 使用的文法如: if x > 10 {     fmt.Println("x大於10")
} else {     fmt.Println("x小於10")
} 條件判斷語句中不需要括弧。與其他語言不同的就是條件判斷語句裡允許聲明一個變數,這個變數的範圍在該條件邏輯塊內有效,其他地方不起作用,如: if x := randVal(); x > 10 {     fmt.Println("x大於10")
} else {     fmt.Println("x小於10")
}
switch: 文法:switch 運算式 {     case 運算式1:
        程式動作陳述式
    case 運算式2:
        程式動作陳述式
} go中的switch非常的強大,case的值不必是標量,而可以是一個運算式的執行結果,只要運算式的結果類型和條件的類型一樣就可以了,可以把多個值集合在一個case裡面,只要條件運算式的值符號此case中的其中一個值就可以執行case裡面的語句,同時case預設帶有break,匹配成功就不會執行下面的判斷語句了,如果要繼續判斷接下來的case,可以在case裡面增加fallthrough來強制執行後面的case代碼。如果switch沒有運算式,它會匹配true。如; i := 10 switch i {     case 2-1:
        fmt.Println("i的值為2-1")
    case 2,3,4,5:
        fmt.Println("i的值在2到5之間")
        fallthrough
    case 10:
        fmt.Println("i的值等於10")
    default:
        fmt.Printf("i的值為:%d\n", i); }
for: 更其他語言一樣用來迴圈讀取資料,但他更強大,go中沒有while,do while等語句,都是通過for語句來實現的。 使用:for 運算式1; 運算式2; 運算式3 {     執行的程式語句
} for 判斷語句同樣沒有括弧括起來,和其他語言一樣運算式1在迴圈開始之前調用,運算式3在每輪迴圈結束之時調用,表單式2用來進行每次迴圈的判斷。在go中運算式1和運算式3可以省略,來當while功能如: sum := 1 for sum < 100 {     sum += sum
}
for range這個語句相當的好用類似於foreach或for in語句。用for range可以來讀取字串,數組,slice,map,channel的資料,如: for k, v := range map{     fmt.Println("map's key:", k)
    fmt.Println("map's value:", v)
} 如果不需要相關的值,可以使用"_",來丟棄相關的傳回值。如: for _, v := range arr {     .....
} 注意:迭代右運算式在迴圈開始前,一次性的計算好,迭代的變數遵循變數類型的賦值原則,如果是指標指向類型,則在迭代的過程中,如果有修改相關值,會影響到相關的迭代過程,如果是值拷貝的,在迭代過程中對原變數變更,不會影響對迴圈前變數值的迭代過程。
break|continue|goto: 和其他語言一樣通過break來跳出迴圈,continue來跳過本次迴圈,break和continue還可以跟著標號,來跳到多重迴圈中的外出迴圈。break也可以配合標籤來使用,以跳出到指定的標籤位置。goto也和標籤配合使用來使程式跳轉到指定的標籤位置,標籤從新的一行開始,並且與冒號結束,標籤名大小寫敏感。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.