真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

golang中單向channel的語(yǔ)法介紹

本文主要給大家介紹的是關(guān)于golang單向channel語(yǔ)法的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō),來(lái)一起看看詳細(xì)的介紹:

創(chuàng)新互聯(lián)公司咨詢熱線:18982081108,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),創(chuàng)新互聯(lián)公司網(wǎng)頁(yè)制作領(lǐng)域十載,包括成都廣告推廣等多個(gè)領(lǐng)域擁有豐富的網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),選擇創(chuàng)新互聯(lián)公司,為網(wǎng)站錦上添花。

今天閑來(lái)無(wú)事補(bǔ)充一下golang的語(yǔ)法知識(shí),想起來(lái)看看context的用法,結(jié)果碰到了一個(gè)沒(méi)見(jiàn)過(guò)的channel語(yǔ)法:

// 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{} ,一個(gè)接口函數(shù)的聲明怎么這么奇怪呢?下面來(lái)分解一下。

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

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

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

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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者使用Go語(yǔ)言能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。


文章名稱:golang中單向channel的語(yǔ)法介紹
地址分享:http://weahome.cn/article/geeped.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部