<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## if 語句 ### 定義 ~~~ ? 可省略條件表達式括號。 ? 持初始化語句,可定義代碼塊局部變量。 ? 代碼塊左 括號必須在條件表達式尾部。 if 布爾表達式 { /* 在布爾表達式為 true 時執行 */ } ~~~ ~~~ if 布爾表達式 { /* 在布爾表達式為 true 時執行 */ } else { /* 在布爾表達式為 false 時執行 */ } ~~~ ## switch 語句 ### 定義 ~~~ switch var1 { case val1: ... case val2: ... default: ... } ~~~ ### Type Switch ``` go package main import "fmt" func main() { var x interface{} //寫法一: switch i := x.(type) { // 帶初始化語句 case nil: fmt.Printf(" x 的類型 :%T\r\n", i) case int: fmt.Printf("x 是 int 型") case float64: fmt.Printf("x 是 float64 型") case func(int) float64: fmt.Printf("x 是 func(int) 型") case bool, string: fmt.Printf("x 是 bool 或 string 型") default: fmt.Printf("未知型") } ``` ## select 語句 select 語句類似于 switch 語句,但是select會隨機執行一個可運行的case。如果沒有case可運行,它將阻塞,直到有case可運行。 select 是Go中的一個控制結構,類似于用于通信的switch語句。每個case必須是一個通信操作,要么是發送要么是接收。 select 隨機執行一個可運行的case。如果沒有case可運行,它將阻塞,直到有case可運行。一個默認的子句應該總是可運行的。 ### 語法 ~~~ select { case communication clause : statement(s); case communication clause : statement(s); /* 你可以定義任意數量的 case */ default : /* 可選 */ statement(s); } ~~~ ~~~ 每個case都必須是一個通信 所有channel表達式都會被求值 所有被發送的表達式都會被求值 如果任意某個通信可以進行,它就執行;其他被忽略。 如果有多個case都可以運行,Select會隨機公平地選出一個執行。其他不會執行。 否則: 如果有default子句,則執行該語句。 如果沒有default字句,select將阻塞,直到某個通信可以運行;Go不會重新對channel或值進行求值。 ~~~ ``` go 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): // same as: 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") } } ``` >與switch語句可以選擇任何使用相等比較的條件相比,select由比較多的限制,其中最大的一條限制就是每個case語句里必須是一個IO操作 ``` go 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): // same as: 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 init; condition; post { } for condition { } for { } ~~~ ``` go s := "abc" for i, n := 0, len(s); i < n; i++ { // 常見的 for 循環,支持初始化語句。 println(s[i]) } n := len(s) for n > 0 { // 替代 while (n > 0) {} println(s[n]) // 替代 for (; n > 0;) {} n-- } for { // 替代 while (true) {} println(s) // 替代 for (;;) {} } ``` ## 循環語句range ~~~ for key, value := range oldMap { newMap[key] = value } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看