濮阳杆衣贸易有限公司

主頁 > 知識庫 > golang中單向channel的語法介紹

golang中單向channel的語法介紹

熱門標簽:百度地圖標注搜索關鍵詞 ?兓? 騰訊外呼系統(tǒng)價格 電梯外呼訪客系統(tǒng) 電銷機器人可以補救房產(chǎn)中介嗎 浙江人工智能外呼管理系統(tǒng) 谷歌便利店地圖標注 最短的地圖標注 成都呼叫中心外呼系統(tǒng)平臺

本文主要給大家介紹的是關于golang單向channel語法的相關內(nèi)容,分享出來供大家參考學習,下面話不多說,來一起看看詳細的介紹:

今天閑來無事補充一下golang的語法知識,想起來看看context的用法,結(jié)果碰到了一個沒見過的channel語法:

// A Context carries a deadline, cancelation signal, and request-scoped values
// across API boundaries. Its methods are safe for simultaneous use by multiple
// goroutines.
type Context interface {
 // Done returns a channel that is closed when this `Context` is canceled
 // or times out.
 Done() -chan struct{}
 
 // Err indicates why this Context was canceled, after the Done channel
 // is closed.
 Err() error
 
 // Deadline returns the time when this Context will be canceled, if any.
 Deadline() (deadline time.Time, ok bool)
 
 // Value returns the value associated with key or nil if none.
 Value(key interface{}) interface{}
}

注意看:Done() - chan struct{} ,一個接口函數(shù)的聲明怎么這么奇怪呢?下面來分解一下。

Done() chan struct{} :如果函數(shù)定義改成這樣,其意義是,

  • 函數(shù)名Done,參數(shù)(),返回值chan struct{} 。
  • 單獨拿返回值來說,它是一個管道chan,內(nèi)部的數(shù)據(jù)類型是struct{} 。
  • 單獨拿struct{}來說,我們熟悉type Name struct{a int, b bool}這樣去定義一個結(jié)構體的類型,其實struct{…}就是定義結(jié)構體,和map[string]int這種定義是一樣的,type只是給它啟了一個別名。

- chan struct{} :單獨看這個表達式,我們知道如果ch := make(chan struct{}) ,那么- ch是從管道里取出數(shù)據(jù)。但是chan struct{}是類型而不是變量,竟然能從一個類型里取數(shù)據(jù)??

其實-chan int仍舊是一個管道類型,它叫做單向channel。如果是-chan int,說明是只能讀不能寫的管道(也不能關閉),如果是chan - int ,說明是只能寫不能讀的管道(可以關閉),僅此而已!

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者使用Go語言能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • 基于golang channel實現(xiàn)的輕量級異步任務分發(fā)器示例代碼
  • golang中for循環(huán)遍歷channel時需要注意的問題詳解
  • golang實現(xiàn)基于channel的通用連接池詳解
  • Golang優(yōu)雅關閉channel的方法示例
  • golang判斷chan channel是否關閉的方法
  • Golang中channel使用的一些小技巧
  • Golang中channel的原理解讀(推薦)

標簽:昭通 東營 駐馬店 滄州 晉中 阿壩 泰安 瀘州

巨人網(wǎng)絡通訊聲明:本文標題《golang中單向channel的語法介紹》,本文關鍵詞  golang,中,單向,channel,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang中單向channel的語法介紹》相關的同類信息!
  • 本頁收集關于golang中單向channel的語法介紹的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    民和| 习水县| 贡觉县| 突泉县| 夏河县| 师宗县| 潼南县| 句容市| 雅江县| 华容县| 宜丰县| 师宗县| 谢通门县| 榆树市| 浠水县| 天全县| 山阳县| 大港区| 海城市| 南汇区| 肃宁县| 孙吴县| 邵东县| 马关县| 宁德市| 绥中县| 青海省| 兴山县| 法库县| 镇安县| 汝阳县| 阿克苏市| 衡阳县| 博客| 东山县| 比如县| 晋中市| 边坝县| 湟源县| 太谷县| 达拉特旗|