gpt4 book ai didi

go - 如何从 channel 接收直到它在 GO 中具有值

转载 作者:数据小太阳 更新时间:2023-10-29 03:44:49 26 4
gpt4 key购买 nike

一个函数有一个循环,它在其中调用一个 go 例程,并将一个 channel 传递给它。在此之后,我尝试从 channel 接收直到它有值。

go 函数在每次调用时在 channel 中传递值。

我的 channel 无限运行。

func (m *StreamsDAO) FindOutput(输入模型.输入) ([]模型.输出, 错误) {

// SOME CODE

var chanNumber int = (input.EndTime - input.StartTime)/60
outputChan := make(chan model.Output, chanNumber)
for i := input.StartTime; i < input.EndTime ;i = i+(slider*60) {

// SOME CODE

go ForEachSlide(i, outputChan)
for outputC := range outputChan {
outputs = append(outputs, outputC)
}
}
return outputs, err

func ForEachSlide(i int, outputChan chan model.Output) {

// SOME CODE

outputChan <- output
// close(outputChan)

它无限循环,因为没有停止从 channel 接收。如果使用关闭 channel ,则只会按预期从 channel 接收到单个元素,但我需要 channel 中的所有值。

最佳答案

关于go - 如何从 channel 接收直到它在 GO 中具有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55828822/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com