Если есть список, который необходимо сгенерировать и обработать (в идеале, при создании), что такое соглашение? Кажется, что обратные вызовы не используются так сильно, в то время как каналы являются универсальным фаворитом. Не будет решающего преимущества либо для предоставления обратного вызова для каждого элемента, либо для запуска goroutine для создания списка и синхронного чтения и обработки каждого элемента.Шаблон посетителя против канала в Go
Я бы понял, было ли выполнено несколько задач в ожидании завершения списка, или оба выполняли дорогостоящие задачи, и можно было бы работать над последним элементом при создании следующего элемента, но это не так, здесь. Производители и потребители являются недорогими.
Тип трудно сравнивать, поскольку шаблон посетителя является образцом; способ кодирования. Принимая во внимание, что канал - действительно действительно приятная система очередей. Это может быть блокировка или неблокирование, FIFO и просто чрезвычайно проста в использовании. – khuderm
@khuderm Согласовано, но давайте просто передадим обратный вызов, который, по крайней мере, немного проще, чем запуск goroutine и установка блока для выбора. –