У меня есть служебная функция в Голанге, где работает бесконечный цикл. Я хотел получить данные из этой функции без возврата. Какое наилучшее решение, канал или io.Writer? Функция и где я называю ее в другом пакете, потому что funcion в package something
, в то время как я называю это основным. Существует пример с каналами:Получение ответа от функции без возврата - Golang
func Check(dst string, w chan string) bool {
for {
w <- data
}
return false
}
На Otherside, где я называю эту функцию:
var wg sync.WaitGroup
func main() {
messages := make(chan string, 10)
wg.Add(3)
go checking("10.1.1.1", messages)
msg := <-messages
fmt.Println(msg)
wg.Wait()
}
func checking(ip string, msg chan string) {
defer wg.Done()
w := worker.ContainerAliveIndicator{}
w.Check(ip, msg)
}
В этом случае я получаю только первое сообщение, что функция принимать к каналу.
Удивительного , первый с каналами хорош. Спасибо. – PumpkinSeed