Golang reflect.Select() and SelectCase() function example
package reflect
Golang reflect.Select() and SelectCase() function usage example
package main
import (
"fmt"
"reflect"
)
func main() {
var sendCh = make(chan int) // channel to use (for send or receive)
var increaseInt = func(c chan int) {
for i := 0; i < 8; i++ {
c <- i
}
close(c)
}
go increaseInt(sendCh)
var selectCase = make([]reflect.SelectCase, 1)
selectCase[0].Dir = reflect.SelectRecv
selectCase[0].Chan = reflect.ValueOf(sendCh)
counter := 0
for counter < 1 {
chosen, recv, recvOk := reflect.Select(selectCase) // <--- here
if recvOk {
fmt.Println(chosen, recv.Int(), recvOk)
} else {
counter++
}
}
}
References :
Advertisement
Something interesting
Tutorials
+16.9k Golang : How to generate QR codes?
+9.2k nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
+8.3k Golang : Number guessing game with user input verification example
+11.5k CodeIgniter : Import Linkedin data
+5.3k Golang : Generate Interleaved 2 inch by 5 inch barcode
+15.2k Golang : Accurate and reliable decimal calculations
+22.9k Golang : Calculate time different
+5.6k PHP : Convert string to timestamp or datestamp before storing to database(MariaDB/MySQL)
+8.2k Android Studio : Rating bar example
+5.8k Cash Flow : 50 days to pay your credit card debt
+41.4k Golang : Convert string to array/slice
+43.5k Golang : Get hardware information such as disk, memory and CPU usage