我正试图将一个通道数组传递给方法"func Data(channel-chan<-[]Book(",但我遇到了一个错误,状态为(channel[0](类型chan<-[]Book不支持索引("(我理解它的含义,但没有方法传递数组吗?如果是,我有什么替代
func Data(channel chan<- []Book) {
var data EData
data = ReadJSONFile("Data.json")
go Writer(data.BookStores[0].Central, channel[0]) // at this
// place I get "invalid operation: channel[0] (type chan<- []Book
// does not support indexing)"
}
传递Book元素通道切片的正确类型是:
[]chan<- Book
你最初的问题中的代码是针对一个图书切片频道的。
chan<- []Book
需要变成[]chan<- Book
。[]
在go中修改它后面的类型,所以如果你想要一个通道数组,就把它放在chan
之前。
func Data(channel []chan<- Book) {
var data EData
data = ReadJSONFile("Data.json")
go Writer(data.BookStores[0].Central, channel[0])
// ...
}
测试:https://play.golang.org/p/sQt3VawvhoI