如何从 Go 通道获取(和忽略)一个值
How to get (and ignore) a value from Go channel
我在 select
语句中有以下代码。 finish
是 bool
类型。事实上,我什至不在乎价值,只要我收到任何东西。然而,Go 给我一个未使用的变量错误。我该如何解决?
case finish := <- termSig:
我目前的解决方法是 Println(finish)
。
我试过:-
case _ := <- termSig:
但这也不管用。
只需省略变量和 :=
:
case <-termSig:
如 Go Tour 所示,当 select
被引入时,您可以有一个不初始化新变量的情况。
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
}
}
}
我在 select
语句中有以下代码。 finish
是 bool
类型。事实上,我什至不在乎价值,只要我收到任何东西。然而,Go 给我一个未使用的变量错误。我该如何解决?
case finish := <- termSig:
我目前的解决方法是 Println(finish)
。
我试过:-
case _ := <- termSig:
但这也不管用。
只需省略变量和 :=
:
case <-termSig:
如 Go Tour 所示,当 select
被引入时,您可以有一个不初始化新变量的情况。
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
}
}
}