最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言中Select語句用法實例

 更新時間:2015年02月26日 12:05:38   作者:不是JS  
這篇文章主要介紹了Go語言中Select語句用法,實例分析了select語句的原理與使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Go語言中Select語句用法。分享給大家供大家參考。具體分析如下:

select 語句使得一個 goroutine 在多個通訊操作上等待。
select 會阻塞,直到條件分支中的某個可以繼續(xù)執(zhí)行,這時就會執(zhí)行那個條件分支。當多個都準備好的時候,會隨機選擇一個。

復制代碼 代碼如下:
package main
import "fmt"
func fibonacci(c, quit chan int) {
        x, y := 1, 1
        for {
                select {
                case c <- x:
                          x, y = y, x + y
                case <-quit:
   fmt.Println("quit")
                        return
                }
        }
}
func main() {
        c := make(chan int)
 quit := make(chan int)
 go func() {
  for i := 0; i < 10; i++ {
   fmt.Println(<-c)
  }
  quit <- 0
 }()
 fibonacci(c, quit)
}

默認選擇

當 select 中的其他條件分支都沒有準備好的時候,default 分支會被執(zhí)行。

為了非阻塞的發(fā)送或者接收,可使用 default 分支:

select {
case i := <-c:
// use i
default:
// receiving from c would block
}

復制代碼 代碼如下:
package main
import (
 "fmt"
 "time"
)
func main() {
        tick := time.Tick(1e8)
        boom := time.After(5e8)
        for {
                select {
                case <-tick:
                        fmt.Println("tick.")
                case <-boom:
                        fmt.Println("BOOM!")
                        return
                default:
                        fmt.Println("    .")
                        time.Sleep(5e7)
                }
        }
}

希望本文所述對大家的Go語言程序設計有所幫助。

相關文章

  • golang不到30行代碼實現(xiàn)依賴注入的方法

    golang不到30行代碼實現(xiàn)依賴注入的方法

    這篇文章主要介紹了golang不到30行代碼實現(xiàn)依賴注入的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • golang如何替換換行符

    golang如何替換換行符

    這篇文章主要介紹了golang如何替換換行符問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • golang新手們容易犯的3個錯誤總結

    golang新手們容易犯的3個錯誤總結

    這篇文章主要給大家介紹了關于golang新手們容易犯的3個錯誤,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-08-08
  • golang逐行讀取文件的操作

    golang逐行讀取文件的操作

    這篇文章主要介紹了golang逐行讀取文件的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • 使用Go實現(xiàn)webrtc播放音頻的流程步驟

    使用Go實現(xiàn)webrtc播放音頻的流程步驟

    WebRTC是一項實時通信技術,允許網(wǎng)絡應用或站點,在不需要中間媒介的情況下,建立瀏覽器之間點對點(Peer-to-Peer)的連接,實現(xiàn)視頻流、音頻流或普通數(shù)據(jù)的傳輸,本文給大家介紹了使用Go實現(xiàn)webrtc播放音頻的流程步驟,需要的朋友可以參考下
    2025-07-07
  • 詳解Go語言變量作用域

    詳解Go語言變量作用域

    這篇文章主要介紹了Go 語言變量作用域的相關資料,幫助大家更好的理解和學習使用go語言,感興趣的朋友可以了解下
    2021-03-03
  • VSCode Golang dlv調試數(shù)據(jù)截斷問題及處理方法

    VSCode Golang dlv調試數(shù)據(jù)截斷問題及處理方法

    這篇文章主要介紹了VSCode Golang dlv調試數(shù)據(jù)截斷問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • mac下golang安裝了windows編譯環(huán)境后編譯變慢

    mac下golang安裝了windows編譯環(huán)境后編譯變慢

    這篇文章主要介紹了mac下golang安裝了windows編譯環(huán)境后編譯變慢的處理方法,非常的簡單,有相同問題的小伙伴可以參考下。
    2015-04-04
  • golang打包成帶圖標的exe可執(zhí)行文件

    golang打包成帶圖標的exe可執(zhí)行文件

    這篇文章主要給大家介紹了關于golang打包成帶圖標的exe可執(zhí)行文件的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2023-06-06
  • 詳解Go語言中Validator庫的使用方法和用途

    詳解Go語言中Validator庫的使用方法和用途

    github.com/go-playground/validator 是一個 Go 語言的庫,用于對結構體字段進行驗證,它提供了一種簡單而靈活的方式來定義驗證規(guī)則,在這篇文章中,我們將從一個簡單的問題出發(fā),帶你了解 Validator 庫的用途,也會介紹Validator 的基本使用
    2023-09-09

最新評論

湖北省| 碌曲县| 崇义县| 南昌县| 三门县| 昔阳县| 囊谦县| 水城县| 福安市| 阿拉尔市| 张家川| 衡南县| 台东市| 青州市| 南江县| 阜城县| 巨野县| 龙里县| 囊谦县| 通辽市| 外汇| 赤峰市| 社旗县| 南乐县| 仪陇县| 阳西县| 龙口市| 辉县市| 铁力市| 隆化县| 密云县| 句容市| 赞皇县| 日土县| 桂平市| 兖州市| 尤溪县| 台中市| 开封市| 石嘴山市| 衡阳市|