Я хочу создать канал, из которого кто-то может получать только каналы, доступные только для приема, например:
c := make(chan <-chan int)
Однако я не могу читать с этого канала:
invalid operation: <-c (receive from send-only type chan<- chan int)
( Playground link ) Из сообщения об ошибке ясно, что мой синтаксис chan <-chan
интерпретируется как chan<- chan
, то есть канал каналов только для отправки.Выполнение gofmt
даже изменяет код, чтобы отразить это.
Итак, как мне обозначить тип канала, который я хочу?