Go 第二部分:分支語句、函數

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

這是 Go 系列的第二篇文章,主要介紹 if/else , switch 和函數的各種用法。

系列整理:

  • Go 第一部分:變數、常量和枚舉類型

如果對 Go 語言本身感興趣,可以閱讀我的這篇譯文 Go語言的優點,缺點和令人厭惡的設計。

if/else

// 聲明可以先於條件,if 中的聲明的變數只在此 if/else 有效if num := 9; num < 0 {    } else if num < 10 {    } else {    }

switch

// 普通 switchswitch time.Now().Weekday() {    // 可以用逗號寫多個值    case time.Saturday, time.Sunday:        fmt.Println("It's the weekend")    default:        fmt.Println("It's the weekday")}// 無運算式額的 switchswitch {    case t.Hour() < 12:        fmt.Println("It's before noon")    default:        fmt.Println("It's after noon")}// 比較類型whatAmI := func(i interface{}) {    switch t := i.(type) {        case bool:            fmt.Println("I'm a bool")        case int:            fmt.Println("I'm a int")        default:            fmt.Printf("Don't know type %T\n", t)        }}whatAmI(true)whatAmI(1)whatAmI("hey")

迴圈

// 經典的迴圈for n := 0; n <= 5; n++ {    if n % 2 == 0 {        continue    }    fmt.Println(n)}// 只有條件for i <= 3 {    fmt.Println(i)    i = i + 1 }// 死迴圈for {    fmt.Println("loop")    break}

實際測試

將整數轉換為二進位表示

func convertToBin(v int) string {    result := ""    for ; v > 0; v /= 2 {        result = strconv.Itoa(v % 2) + result    }        return result}

函數

// 閉包函數func apply(op func(int, int) int, a, b int) int {    return op(a, b)}func main() {    result := apply(func(i int, i2 int) int {        return int(math.Pow(float64(i), float64(i2)))    }, 2, 2)    fmt.Println(result)}// 可變參數func sum(num ... int) int {    var result = 0    for _, v := range num {        result = result + v    }    return result}c := sum(1, 2, 3)fmt.Println(c)
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.