Go select 語句
select是Go中的一個控制結構,類似於用於通訊的switch語句。每個case必須是一個通訊操作,要麼是傳送要麼是接收。
select隨機執行一個可執行的case。如果沒有case可執行,它將阻塞,直到有case可執行。一個預設的子句應該總是可執行的。
語法
Go 程式語言中 select 語句的語法如下:
select { case communication clause : statement(s); case communication clause : statement(s); /* 你可以定義任意數量的 case */ default : /* 可選 */ statement(s); }
以下描述了 select 語句的語法:
- 每個case都必須是一個通訊
- 所有channel表示式都會被求值
- 所有被髮送的表示式都會被求值
- 如果任意某個通訊可以進行,它就執行;其他被忽略。
- 如果有多個case都可以執行,Select會隨機公平地選出一個執行。其他不會執行。
否則:- 如果有default子句,則執行該語句。
- 如果沒有default字句,select將阻塞,直到某個通訊可以執行;Go不會重新對channel或值進行求值。
例項
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
原文地址: http://www.runoob.com/go/go-select-statement.html?from=timeline
個人微信公眾號:
作者:jiankunking 出處:http://blog.csdn.net/jiankunking
相關文章
- Go select語句詳解Go
- 圖解Go select語句原理圖解Go
- insert into select語句與select into from語句
- SQL SELECT 語句SQL
- 【SQL】14 UNION 操作符、SELECT INTO 語句、INSERT INTO SELECT 語句、CREATE DATABASE 語句、CREATE TABLE 語句SQLDatabase
- SQL語言基礎(SELECT語句)SQL
- 學習MySQL的select語句MySql
- Select語句執行順序
- SQLite語句(二):INSERT DELETE UPDATE SELECTSQLitedelete
- 資料庫學習(一)——select語句資料庫
- DBeaver如何生成select,update,delete,insert語句delete
- GO 條件語句Go
- # 關於select關鍵字語句定義順序# 關於select關鍵字語句執行順序
- Go:條件控制語句Go
- Sqlserver的merge into或delete語句堵塞select語句,鎖型別是LCK_M_ISSQLServerdelete型別
- Mybatis如何執行Select語句,你真的知道嗎?MyBatis
- Oracle select 語句字串拼接小例項-quote使用Oracle字串
- Oracle:select 或 inactive 會話語句產生鎖?Oracle會話
- 6. Oracle開發和應用—6.3. 基本SQL語句—6.3.4. select語句OracleSQL
- Go 條件語句 - Go 學習記錄Go
- Oracle OCP(01):使用SQL SELECT語句檢索資料OracleSQL
- Go 基礎教程--5 控制語句Go
- Go的SelectGo
- 當執行一條select語句時,MySQL到底做了啥?MySql
- create table 使用select查詢語句建立表的方法分享
- INSERT...SELECT語句對查詢的表加鎖嗎
- 比CRUD多一點兒(二):基礎INSERT、SELECT語句
- 【TUNE_ORACLE】查出所有有“select *”語句的SQL參考OracleSQL
- Go_ if else語句 ,,迴圈,,switch,,陣列Go陣列
- go 流程控制之switch 語句介紹Go
- Go的條件判斷語句的使用Go
- 【Golang 基礎系列十】Go 語言 條件語句之ifGolang
- flask之控制語句 if 語句與for語句Flask
- 在oracle中,select語句查詢欄位中非純數字值Oracle
- 用一句話描述Go語言的命令Go
- Go運算子、控制語句-DateWhale開源學習Go
- 如何在MySQL 5.7中使用SELECT … INTO語句匯出資料檔案?MySql
- 清華尹成帶你實戰GO案例(16)Go Switch語句Go
- Go 快速入門指南 - selectGo