如何从Go通道获取(并忽略)一个值

时间:2016-01-11 02:02:00

标签: go channel

我在select语句中有以下代码。 finish的类型为bool。实际上,只要我收到任何东西,我就不会关心这个价值。但是,Go给了我一个未使用的变量错误。我怎么能绕过它?

case finish := <- termSig:

我目前的解决方法是Println(finish)

我曾经尝试过: -

case _ := <- termSig:

但这也不起作用。

2 个答案:

答案 0 :(得分:6)

只需省略变量和:=

case <-termSig:

答案 1 :(得分:3)

如引入selectGo Tour所示,您可以设置一个不会初始化新变量的案例。

func fibonacci(c, quit chan int) {
    x, y := 0, 1
    for {
        select {
        case c <- x:
            x, y = y, x+y
        case <-quit:  // looks like exactly your use case
            fmt.Println("quit")
            return
        }
    }
}