亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

關于golang當中對select的分析

發布時間:2020-08-27 09:59:15 來源:億速云 閱讀:166 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關關于golang當中對select的分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Select 語句和 Swithc 語句的句式十分相似,但是 Select 中的 Case 必須是一個通信操作(一個 Channel 操作)。其執行邏輯是:哪一個 Case 后面的 Channel 操作可以被成功執行,則執行該 Case 下的代碼塊。如果同時多個 Case 可被成功執行,則隨機選擇其中一個。如果所有 Case 均不可被成功執行,則執行 default 下的代碼塊。如果沒有 default 則會阻塞并返回死鎖錯誤。

監聽 IO 操作,當 IO 操作發生時,觸發相應的動作
這個說法是對的,監聽(Channel 的) IO 操作并作出相應動作確實是 Select 的應用場景,但是千萬不要誤以為 Select 語句是在選擇哪個 case 下的 Channel 操作被執行了!這么理解是錯的!Select 真正會選擇的是哪個 case 下的 Channel 操作可以被成功執行,則執行該 case 下的代碼塊。

比如,當一個 Channel c1 被寫入一條數據

c1 := make(chan string, 1)c1 <- "Hello World!"

如果我們有以下 Select 判斷語句

select {
    case <-c1:
        fmt.Println("Case 1 is selected")
    case c1<-"Hello World!":
        fmt.Println("Case 2 is selected")
    default :
        fmt.Println("Default is selected")}

你會得到如下結果

Case 1 is selected

因為 c1 被寫入了一條數據,所以我們可以成功 “從 c1 讀出一條數據”。也就是第一個 case 可以被成功執行。所以,第一個 case 下的代碼塊最終被執行。                      

關于關于golang當中對select的分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

廉江市| 察雅县| 贞丰县| 周宁县| 无棣县| 昌黎县| 靖边县| 托克托县| 张家港市| 贵定县| 陵川县| 鹿邑县| 临泽县| 迁西县| 乡宁县| 新安县| 咸丰县| 宜章县| 盐亭县| 台湾省| 庆城县| 赤城县| 江西省| 沁水县| 冀州市| 阿图什市| 抚松县| 东至县| 苍南县| 大丰市| 湘阴县| 淳化县| 邵阳县| 台江县| 泰来县| 博乐市| 华容县| 泸水县| 方山县| 宿州市| 惠东县|