Golang reflect.SelectCase and SelectDir types example
package reflect
Golang reflect.SelectCase and SelectDir types usage example
package main
import (
"fmt"
"reflect"
)
func main() {
var chr = make(chan string, 1)
var rCase reflect.SelectCase
rCase.Dir = reflect.SelectRecv
rCase.Chan = reflect.ValueOf(chr)
// see http://golang.org/pkg/reflect/#SelectDir
// A SelectDir describes the communication direction of a select case.
fmt.Println("Direction of case : ", rCase.Dir) // SelectRecv enum #2 - direction of case
fmt.Println("Channel to use : ", rCase.Chan) // channel to use (for send or receive)
// invalid because this is SelectRecv case, not SelectSend
fmt.Println("Value to send : ", rCase.Send)
fmt.Println("-------------------------------------")
var chs = make(chan string, 2)
var sCase reflect.SelectCase
sCase.Dir = reflect.SelectSend
sCase.Send = reflect.ValueOf(chs)
// see http://golang.org/pkg/reflect/#SelectDir
fmt.Println("Direction of case : ", sCase.Dir) // SelectSend enum #1- direction of case
fmt.Println("Channel to use : ", sCase.Chan) // invalid because ONLY send, not send or receive
fmt.Println("Value to send : ", sCase.Send) // valid because this the SelectSend case
}
Output :
Direction of case : 2
Channel to use :
Value to send :
Direction of case : 1
Channel to use :
Value to send :
References :
Advertisement
Something interesting
Tutorials
+6.8k Golang : Find the longest line of text example
+22.2k Golang : Print leading(padding) zero or spaces in fmt.Printf?
+11.6k Golang : Surveillance with web camera and OpenCV
+41.9k Golang : How do I convert int to uint8?
+10.2k Golang : How to get quoted string into another string?
+8.6k Golang : Another camera capture GUI application with GTK and OpenCV
+27.7k PHP : Count number of JSON items/objects
+10.6k Golang : Resolve domain name to IP4 and IP6 addresses.
+8.8k Golang : Executing and evaluating nested loop in html template
+6.1k Golang : Debug with Godebug
+16.4k CodeIgniter/PHP : Create directory if does not exist example
+22.8k Golang : untar or extract tar ball archive example