Как передать переменные с чаном между функциями - PullRequest
0 голосов
/ 09 октября 2018

Я реализую простой механизм передачи переменной между двумя программами с каналом.Вот мой код:

pipe := make(chan string)
go func(out chan string, data string) { //1st goroutine
        out <- DataSignerMd5(data)
    }(pipe, data)
go func(in chan string) {               //2nd goroutine
        data := <-in
        in <- DataSignerCrc32(data)
    }(pipe)
crcMdData := <- pipe

Скорее всего, crcMdData извлекает переменную из pipe до 2-й программы.Я думаю, что я просто могу создать другой канал, чтобы сделать эту работу.Но, возможно, это возможно с одним pipe?

1 Ответ

0 голосов
/ 09 октября 2018

Вы должны использовать второй канал для того, что вы хотите сделать.Вы можете обойтись без использования одного канала и включения результата, но это не совсем идеально - вы в основном пытаетесь поместить два разных типа объектов в один канал, и ваша программа в итоге станет намного чище и прощерассуждать о том, есть ли у вас только один канал на тип данных / предполагаемое преобразование.

...