好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > golang 函數(shù)返回chan類型的操作

golang 函數(shù)返回chan類型的操作

熱門標(biāo)簽:電話機(jī)器人軟件免費(fèi) 外呼系統(tǒng)用什么卡 涿州代理外呼系統(tǒng) 外呼系統(tǒng)顯本地手機(jī)號 評價(jià)高的400電話辦理 阿克蘇地圖標(biāo)注 excel地圖標(biāo)注分布數(shù)據(jù) 百度地圖標(biāo)注后傳給手機(jī) 壽光微信地圖標(biāo)注

在閱讀kafka的golang 客戶端代碼sarama-cluster時(shí),遇到了如下一段代碼:

// Messages returns the read channel for the messages that are returned by
// the broker.
//
// This channel will only return if Config.Group.Mode option is set to
// ConsumerModeMultiplex (default).
func (c *Consumer) Messages() -chan *sarama.ConsumerMessage { return c.messages }

對于代碼中的-chan *sarama.ConsumerMessage產(chǎn)生了疑問,這個(gè)是什么意思呢?

經(jīng)查閱資料,得知上面返回的是一個(gè)read-only類型的channel,即只讀的管道。

驗(yàn)證:

package main
import (
    "fmt"
)
type C struct {
    Name string
}
type D struct {
    Id chan C
}
func (d *D)A() chan C {
    return d.Id
}
func main() {
    c := C{
        Name: "test",
    }
    ch := make(chan C, 10)
    ch - c
    d := D{
        Id: ch,
    }
    r := d.A()
    r - c
    for i:=0;i=len(r);i++ {
        fmt.Printf("%v", -r)
    }
}

創(chuàng)建func A() chan C {}, 在調(diào)用A()后,返回值r為channel, 其仍可以寫入對象c,輸出結(jié)果為:

{test}{test}
Process finished with exit code 0
package main
import (
    "fmt"
)
type C struct {
    Name string
}
type D struct {
    Id chan C
}
func (d *D)A() -chan C {
    return d.Id
}
func main() {
    c := C{
        Name: "test",
    }
    ch := make(chan C, 10)
    ch - c
    d := D{
        Id: ch,
    }
    r := d.A()
    r - c
    for i:=0;i=len(r);i++ {
        fmt.Printf("%v", -r)
    }
}

創(chuàng)建func A() -chan C {}, 在調(diào)用A()后,返回值r為channel, 但無法向r中寫入對象c,會(huì)報(bào)語法錯(cuò)誤,輸出結(jié)果為:

# command-line-arguments
.\test2.go:29:7: invalid operation: r - c (send to receive-only type -chan C)
Compilation finished with exit code 2

同理, 如果返回類型為 chan- type,則返回的是write-only類型的channel,即只能寫不能讀。

如何聲明和初始化單向channel

var ch1 chan- int  // 聲明ch1,只用于寫int數(shù)據(jù)
var ch2 -chan int  // 聲明ch2,只用于讀int數(shù)據(jù)
ch3 := make(chan- int, 10)  // 初始化一個(gè)只寫的channel
ch4 := make(-chan int, 10)  // 初始化一個(gè)只讀的chaannel

補(bǔ)充:golang chan- 和 -chan,作為函數(shù)參數(shù)時(shí)

開始時(shí)看到這個(gè)實(shí)在沒明白怎么回事

測試了下才知道原來

-chan int 像這樣的只能接收值

chan- int 像這樣的只能發(fā)送值

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Golang 空map和未初始化map的注意事項(xiàng)說明
  • Golang 如何判斷數(shù)組某個(gè)元素是否存在 (isset)
  • Go語言的Channel遍歷方法詳解
  • Golang 拷貝Array或Slice的操作
  • 基于Go Int轉(zhuǎn)string幾種方式性能測試
  • Go語言中break label與goto label的區(qū)別
  • Go 實(shí)現(xiàn)英尺和米的簡單單位換算方式

標(biāo)簽:重慶 欽州 吐魯番 梅河口 雞西 汕頭 蘭州 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《golang 函數(shù)返回chan類型的操作》,本文關(guān)鍵詞  golang,函數(shù),返回,chan,類型,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《golang 函數(shù)返回chan類型的操作》相關(guān)的同類信息!
  • 本頁收集關(guān)于golang 函數(shù)返回chan類型的操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 色老板导航| 久久亚洲经典| 班主任解开内裤让我桶她| 国产毛片一区二区| 午夜福利理论片在线观看播放| 苏玉的被肉日常NP| 特黄特黄的视频| 肉文实践教程| 美女直播扒开隐私地方| 美国式禁忌3美国1985| 肥熟老岳| 久久国产精品自在自线| 欧美一级欧美一级高清 | 打扑克带劲的视频| 音乐老师的兔子弹弹的动漫| 国产又粗又猛又爽又黄老大爷一级 | 日韩啪| 小柔好湿?好紧?好滑| 人妻无码AV在线| 国产精品久久久久永久免费看| 尺度堪比《色戒》的亚洲电影| 国产区精品视频| 被多个强壮的黑人灌满浆| 打扑克又叫视频| 综合久久久久综合| 久久久久久精品无码大片八V无不 蜜乳av国精产品一二三产区 | 啊轻点灬大巴太粗太长了视频| 金梅瓶105处性描写原文| 亚洲日韩欧美Av成人毛片| 女女做视频| 午夜爱爱毛片XXXX视频免费看| 日本黄网站动漫视频免费| 国产精品v欧美精品v日韩| 天天做天天做天天爱| 女人扒开裤子让男人捅| 少妇性l交大片免费| 国产日日夜夜| 天天看天天鲁天天爽| 暖暖韩国| 全程粗语对白视频videos| 91亚洲国产|