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

淺析Golang如何向已關(guān)閉的chan讀寫(xiě)數(shù)據(jù)

 更新時(shí)間:2024年02月04日 14:36:28   作者:夢(mèng)_魚(yú)  
這篇文章主要為大家詳細(xì)介紹了Golang如何向已關(guān)閉的chan讀寫(xiě)數(shù)據(jù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

1. 向已關(guān)閉的chan寫(xiě)

會(huì)直接panic,報(bào) send to close channel錯(cuò)誤

package main

func main() {
	// 創(chuàng)建緩沖區(qū)為4的字符串chan
	schoolChan := make(chan string, 4)
	// 放入3個(gè)值
	schoolChan <- "國(guó)防科大"
	schoolChan <- "北京大學(xué)"
	schoolChan <- "湖南大學(xué)"

	// 關(guān)閉chan
	close(schoolChan)

	// 嘗試寫(xiě)數(shù)據(jù),會(huì)panic: send to close channel
	schoolChan <- "中南大學(xué)"
}

2. 向已關(guān)閉的chan讀

會(huì)返回2個(gè)值,若已關(guān)閉的chan中還存在值,第二個(gè)值為true,第一個(gè)值為對(duì)應(yīng)的chan中的值,若已關(guān)閉的chan中不存在值,第二個(gè)值為false,第一個(gè)值為對(duì)應(yīng)chan類(lèi)型的零值

package main

import "fmt"

func main() {
	// 創(chuàng)建緩沖區(qū)為4的字符串chan
	schoolChan := make(chan string, 4)
	// 放入3個(gè)值
	schoolChan <- "國(guó)防科大"
	schoolChan <- "北京大學(xué)"
	schoolChan <- "湖南大學(xué)"

	// 關(guān)閉chan
	close(schoolChan)

	// 向已關(guān)閉的chan讀
	if school, isEmpty := <-schoolChan; isEmpty {
		fmt.Println("school:", school)
	}

	// 向已關(guān)閉的chan讀
	if school, isEmpty := <-schoolChan; isEmpty {
		fmt.Println("school:", school)
	}

	// 向已關(guān)閉的chan讀
	if school, isEmpty := <-schoolChan; isEmpty {
		fmt.Println("school:", school)
	}

	// 向若chan不存在元素,則第二個(gè)參數(shù)的值為 false
	if school, isEmpty := <-schoolChan; isEmpty {
		fmt.Println("school:", school)
	}
}

使用for循環(huán)遍歷chan,若chan未關(guān)閉則會(huì)堵塞等待chan放入元素,如chan關(guān)閉則取出chan內(nèi)所有元素并終止循序

package main

import (
	"fmt"
)

func main() {
	// 創(chuàng)建緩沖區(qū)為4的字符串chan
	schoolChan := make(chan string, 4)
	// 放入3個(gè)值
	schoolChan <- "國(guó)防科大"
	schoolChan <- "北京大學(xué)"
	schoolChan <- "湖南大學(xué)"

	// 關(guān)閉chan
	close(schoolChan)

	// for循環(huán)遍歷channel,會(huì)將已關(guān)閉的chan中緩沖區(qū)的數(shù)據(jù)取出完后終止循序
	for school := range schoolChan {
		fmt.Println("school:", school)
	}
}

到此這篇關(guān)于淺析Golang如何向已關(guān)閉的chan讀寫(xiě)數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Go向已關(guān)閉chan讀寫(xiě)數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語(yǔ)言開(kāi)發(fā)前后端不分離項(xiàng)目詳解

    Go語(yǔ)言開(kāi)發(fā)前后端不分離項(xiàng)目詳解

    這篇文章主要為大家介紹了Go語(yǔ)言開(kāi)發(fā)前后端不分離項(xiàng)目詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • go獲取協(xié)程(goroutine)號(hào)的實(shí)例

    go獲取協(xié)程(goroutine)號(hào)的實(shí)例

    這篇文章主要介紹了go獲取協(xié)程(goroutine)號(hào)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • 深度解析Go語(yǔ)言中的未使用導(dǎo)入和變量

    深度解析Go語(yǔ)言中的未使用導(dǎo)入和變量

    本文解析Go語(yǔ)言中未使用導(dǎo)入和變量的處理機(jī)制,強(qiáng)調(diào)其強(qiáng)制使用規(guī)則對(duì)代碼質(zhì)量的保障,通過(guò)移除冗余、使用空白標(biāo)識(shí)符及工具清理,可提升代碼可讀性與性能
    2025-06-06
  • Golang連接Redis數(shù)據(jù)庫(kù)的方法

    Golang連接Redis數(shù)據(jù)庫(kù)的方法

    這篇文章主要介紹了Golang連接Redis數(shù)據(jù)庫(kù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 一步步教你編寫(xiě)可測(cè)試的Go語(yǔ)言代碼

    一步步教你編寫(xiě)可測(cè)試的Go語(yǔ)言代碼

    相信每位編程開(kāi)發(fā)者們應(yīng)該都知道,Golang作為一門(mén)標(biāo)榜工程化的語(yǔ)言,提供了非常簡(jiǎn)便、實(shí)用的編寫(xiě)單元測(cè)試的能力。本文通過(guò)Golang源碼包中的用法,來(lái)學(xué)習(xí)在實(shí)際項(xiàng)目中如何編寫(xiě)可測(cè)試的Go代碼。有需要的朋友們可以參考借鑒,下面跟著小編一起去學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • go1.8之安裝配置具體步驟

    go1.8之安裝配置具體步驟

    下面小編就為大家?guī)?lái)一篇go1.8之安裝配置具體步驟。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • Golang自動(dòng)追蹤GitHub上熱門(mén)AI項(xiàng)目

    Golang自動(dòng)追蹤GitHub上熱門(mén)AI項(xiàng)目

    這篇文章主要為大家介紹了Golang自動(dòng)追蹤GitHub上熱門(mén)AI項(xiàng)目,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • go語(yǔ)言題解LeetCode1275找出井字棋的獲勝者示例

    go語(yǔ)言題解LeetCode1275找出井字棋的獲勝者示例

    這篇文章主要為大家介紹了go語(yǔ)言題解LeetCode1275找出井字棋的獲勝者示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Golang中深拷貝與淺拷貝詳解

    Golang中深拷貝與淺拷貝詳解

    這篇文章主要為大家詳細(xì)介紹一下Golang深拷貝和淺拷貝,文中有詳細(xì)的代碼示例供大家參考,需要的可以參考一下
    2023-05-05
  • Golang中切片長(zhǎng)度和容量的區(qū)別示例詳解

    Golang中切片長(zhǎng)度和容量的區(qū)別示例詳解

    切片長(zhǎng)度與容量在Go中很常見(jiàn),切片長(zhǎng)度是切片中可用元素的數(shù)量,而切片容量是從切片中第一個(gè)元素開(kāi)始計(jì)算的底層數(shù)組中的元素?cái)?shù)量,這篇文章主要給大家介紹了關(guān)于Golang中切片長(zhǎng)度和容量區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2024-01-01

最新評(píng)論

张家口市| 沈丘县| 容城县| 扶沟县| 开平市| 扶沟县| 绿春县| 武安市| 通河县| 克拉玛依市| 绥棱县| 青铜峡市| 凌源市| 大宁县| 青铜峡市| 光山县| 宁武县| 大厂| 天峨县| 荣成市| 永城市| 葵青区| 于都县| 岚皋县| 肇源县| 东宁县| 桓台县| 万源市| 贡山| 周口市| 同心县| 奇台县| 娱乐| 交口县| 伊吾县| 安塞县| 会泽县| 剑阁县| 宝山区| 连山| 贵溪市|