Как передать массив каналов - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь передать массив каналов в метод "func Data (канал chan <- [] Book)", однако я получаю сообщение об ошибке, которое гласит (channel [0] (type chan <- [] Book делаетне поддерживает индексацию) ") Я понимаю, что это значит, но разве нет способа передать массив? Если да, какие альтернативы у меня есть </p>

     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)"
        }

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

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])
    // ...
}

Test: https://play.golang.org/p/sQt3VawvhoI

0 голосов
/ 20 ноября 2018

Правильный тип для передачи фрагмента каналов элементов Книги:

[]chan<- Book

Код в исходном вопросе относится к каналу фрагментов Книги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...