我正在尝试将通道数组传递给方法“ 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)"
}
答案 0 :(得分:2)
传递Book元素的通道的正确类型是:
[]chan<- Book
您原始问题中的代码是用于“书籍切片”的渠道。
答案 1 :(得分:1)
chan<- []Book
必须成为[]chan<- Book
。 []
修改输入后的类型,因此,如果要使用通道数组,请将其放在chan
之前。
func Data(channel []chan<- Book) {
var data EData
data = ReadJSONFile("Data.json")
go Writer(data.BookStores[0].Central, channel[0])
// ...
}