我有很多,net.Conn我想實(shí)現(xiàn)多作家。所以我可以將數(shù)據(jù)發(fā)送到每個(gè)可用net.Conn的。我目前的方法是使用io.MultiWriter.func route(conn, dst []net.Conn) { targets := io.MultiWriter(dst[0], dst[1]) _, err := io.Copy(targets, conn) if err != nil { log.Println(err) }}但問題是,我必須指定每個(gè)net.Conn索引io.MultiWriter,這將是一個(gè)問題,因?yàn)榍衅笮∈莿?dòng)態(tài)的。[]net.Conn當(dāng)我通過傳遞給嘗試另一種方法時(shí)io.MultiWriter,如下面的代碼func route(conn, dst []net.Conn) { targets := io.MultiWriter(dst...) _, err := io.Copy(targets, conn) if err != nil { log.Println(err) }}出現(xiàn)錯(cuò)誤“無法將鏡像([]net.Conn 類型的變量)用作 io.MultiWriter 參數(shù)中的 []io.Writer 值”有沒有正確的方法來處理這種情況?所以我可以將net.Conn切片傳遞給io.MultiWriter。謝謝你。
1 回答

慕少森
TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
io.MultiWriter()
有一個(gè)類型的參數(shù)...io.Writer
,所以你只能傳遞一個(gè)類型的片段[]io.Writer
。
所以首先創(chuàng)建一個(gè)正確類型的切片,將net.Conn
值復(fù)制到它,然后像這樣傳遞它:
ws := make([]io.Writer, len(dst)) for i, c := range dst { ws[i] = c } targets := io.MultiWriter(ws...)
- 1 回答
- 0 關(guān)注
- 92 瀏覽
添加回答
舉報(bào)
0/150
提交
取消