我關(guān)于StackOverflow的第一個(gè)問(wèn)題:D我正在運(yùn)行1.16。我創(chuàng)建了這個(gè)函數(shù):func (_m *MyPool) InChannel(outs ...chan interface{}) error { for _, out := range outs { out = _m.inChan } return nil}MyPool 是一種工作線程池類(lèi)型,其中包含以下成員:type MyPool struct { inChan chan interface{}}我的主要問(wèn)題是 Go 在 Variadic 輸入的范圍內(nèi)標(biāo)記循環(huán)變量。為什么?我確實(shí)在使用它...outInChannel對(duì)不起,我是StackOverflow的菜鳥(niǎo),所以我正在編輯以澄清一下。我確實(shí)想分配,而不是發(fā)送。這是因?yàn)榘l(fā)送方將具有 as 成員變量,并將通過(guò)以下方式發(fā)送值:outChan chan interface{}func (s *Sender) Out(out interface{}) { select { case <-s.Ctx.Done(): return case s.outChan <- out: return }}編輯:所以我最終通過(guò)做來(lái)解決它:func (m *MyPool) InChannel(outs ...*chan interface{}) error { for _, out := range outs { *out = m.inChan } return nil}
1 回答

守候你守候我
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
你沒(méi)有“真正”使用它。你給一個(gè)你不讀的變量賦值了一些東西,所以賦值沒(méi)有效果,所以基本上你沒(méi)有使用這個(gè)變量。
請(qǐng)注意,這是分配。如果要在頻道上發(fā)送內(nèi)容,請(qǐng)使用 send 語(yǔ)句:=
out <- _m.inChan
或者,也許您想更改值表示? 是一個(gè)循環(huán)變量,它是您在其上范圍的切片元素的副本。將值賦給 僅將值賦給循環(huán)變量,而不賦值給切片元素。outoutout
通常,您可以通過(guò)使用索引表達(dá)式分配值來(lái)更改切片元素,如下所示:
s := []int{1, 2, 3}
for i := range s {
s[i] = 10 // Assign a value to the slice elements
}
然而,在你的情況下,這沒(méi)有任何好處,因?yàn)槟愕姆秶^(guò)了可變參數(shù)的切片。
- 1 回答
- 0 關(guān)注
- 126 瀏覽
添加回答
舉報(bào)
0/150
提交
取消