Go常見語句

來源:互聯網
上載者:User

標籤:strong   ++   var   mmu   求值   轉移   否則   ref   receive   

集中常見的條件判斷語句

語句 描述
if 語句 if 語句 由一個布林運算式後緊跟一個或多個語句組成。
if...else 語句 if 語句 後可以使用可選的 else 語句, else 語句中的運算式在布林運算式為 false 時執行。
if 嵌套語句 你可以在 ifelse if 語句中嵌入一個或多個 ifelse if 語句。
switch 語句 switch 語句用於基於不同條件執行不同動作。
select 語句 select 語句類似於 switch 語句,但是select會隨機執行一個可啟動並執行case。如果沒有case可運行,它將阻塞,直到有case可運行。
if 布林運算式 {   /* 在布林運算式為 true 時執行 */}

**與C語言等不同的是在if後面的布林運算式沒有括弧
eg:
package main

import "fmt"

func main() {
    var a int = 10
    var b float32 = 10.1

    if a < 20 {
        fmt.Println("a 小於 20 \n")
    }
    fmt.Println("a,b的值為: %d,%f\n", a, b)
}



switch語句文法:
switch var1 {    case val1:        ...    case val2:        ...    default:        ...}


select是Go中的一個控制結構,類似於用於通訊的switch語句。每個case必須是一個通訊操作,要麼是發送要麼是接收。

select語句文法:
select {    case communication clause  :       statement(s);          case communication clause  :       statement(s);     /* 你可以定義任意數量的 case */    default : /* 可選 */       statement(s);}
    • 每個case都必須是一個通訊
    • 所有channel運算式都會被求值
    • 所有被發送的運算式都會被求值
    • 如果任意某個通訊可以進行,它就執行;其他被忽略。
    • 如果有多個case都可以運行,Select會隨機公平地選出一個執行。其他不會執行。
      否則:
      1. 如果有default子句,則執行該語句。
      2. 如果沒有default字句,select將阻塞,直到某個通訊可以運行;Go不會重新對channel或值進行求值。
eg:

package main

import "fmt"

func main() {
    var c1, c2, c3 chan int
    var i1, i2 int
    select {
    case i1 = <-c1:
        fmt.Printf("received", i1, "from c1\n")
    case c2 <- i2:
        fmt.Printf("sent ", i2, "to c2\n")
    case i3, ok := (<-c3):
        if ok {
            fmt.Printf("received ", i3, "from c3\n")
        } else {
            fmt.Printf("c3 is closed\n")

        }
    default:
        fmt.Printf("no communication\n")

    }
}
結果為:
    no communication


迴圈語句:
迴圈類型 描述
for 迴圈 重複執行語句塊
迴圈嵌套

在 for 迴圈中嵌套一個或多個 for 迴圈

控制語句 描述
break 語句 經常用於中斷當前 for 迴圈或跳出 switch 語句
continue 語句 跳過當前迴圈的剩餘語句,然後繼續進行下一輪迴圈。
goto 語句 將控制轉移到被標記的語句。

goto 文法格式如下:

goto label;...label: statement;



eg :
package mainimport "fmt"func main() {   /* 定義局部變數 */   var a int = 10   /* 迴圈 */   LOOP: for a < 20 {      if a == 15 {         /* 跳過迭代 */         a = a + 1         goto LOOP      }      fmt.Printf("a的值為 : %d\n", a)      a++        }  }



Go常見語句

相關文章

聯繫我們

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