亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將通道傳遞給方法或直接訪問嵌套結構對象

將通道傳遞給方法或直接訪問嵌套結構對象

Go
qq_笑_17 2022-11-28 17:12:00
我正在處理的基本代碼將通道傳遞給多個方法。也可以通過嵌套結構訪問相同的通道。我可以使用 p.Server.logCh 訪問相同的 logCh。我知道通道非常輕量級,可以傳遞,但有理由不直接訪問它嗎?將有多個并發的 goroutines 訪問同一個通道。type Processor struct {     Server *Server }func (p *Processor) Process(messagesCh <-chan storage.QueueMessage, logCh chan<- model.Log, done chan struct{}) { }
查看完整描述

1 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

通道被設計成可以安全復制和并發讀/寫。所以你的問題更多的是編碼方便的問題。


為了使代碼更具可讀性,請參閱下面的建議。


如果你發現你經常引用一個公共參數,那么將它移到接收者結構中可能是有意義的,例如


type Processor struct { 

    Server     *Server

    MessagesCh <-chan storage.QueueMessage

}

要么將其設為公共字段,以便稍后設置?;蛘呤褂谩皹嬙旌瘮怠痹趩訒r構建通道并將其存儲在結構中(甚至可能作為私有字段)。


然后所有方法都可以更容易地訪問該通道。


查看完整回答
反對 回復 2022-11-28
  • 1 回答
  • 0 關注
  • 82 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號