我正在尝试构建一个将通道传递给的函数,当在 go 例程中运行时,它会不断将更新(在本例中为 sin 的值)发布到通道。当数据通过通道发送时,我想通过网络套接字发送它。
func sineWave(value chan float64) {
var div float64
sinMult := 6.2839
i := 0
log.Println("started")
for {
div = (float64(i+1) / sinMult)
log.Println(math.Sin(div))
time.Sleep(100 * time.Millisecond)
value <- math.Sin(div)
// log.Println()
i++
if i == 45 {
i = 0
}
}
// log.Println(math.Sin(div * math.Pi))
}
它似乎卡在value <- main.Sin(div)停止运行 main() 的其余部分。我如何让 sineWave 在后台无限期运行并在它们到达时在另一个函数中打印它的输出?
眼眸繁星
相关分类