主頁 > 知識庫 > Go語言中Select語句用法實例

Go語言中Select語句用法實例

熱門標簽:地方門戶網(wǎng)站 服務外包 鐵路電話系統(tǒng) AI電銷 網(wǎng)站排名優(yōu)化 呼叫中心市場需求 Linux服務器 百度競價排名

本文實例講述了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語言程序設(shè)計有所幫助。

您可能感興趣的文章:
  • Django forms表單 select下拉框的傳值實例
  • Golang中switch語句和select語句的用法教程
  • 利用Django框架中select_related和prefetch_related函數(shù)對數(shù)據(jù)庫查詢優(yōu)化
  • Python的Django框架中的select_related函數(shù)對QuerySet 查詢的優(yōu)化
  • php中的mongodb select常用操作代碼示例
  • go select編譯期的優(yōu)化處理邏輯使用場景分析

標簽:黃山 衡水 銅川 崇左 仙桃 湖南 湘潭 蘭州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Go語言中Select語句用法實例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266