Golang reflect.ChanOf example

package reflect

Golang reflect.ChanOf usage example

 package main

 import (
  "fmt"
  "reflect"
 )

 func main() {
  var i int
  var recvDir reflect.ChanDir = reflect.RecvDir
  var chanOf reflect.Type = reflect.ChanOf(recvDir, reflect.TypeOf(i))

  fmt.Println("Channel kind : ", chanOf.Kind())
  fmt.Println("Channel Direction : ", chanOf.ChanDir())
  fmt.Println("Channel : ", chanOf.String())

  fmt.Println("---------------------------------------------")

  var s string
  var sendDir reflect.ChanDir = reflect.SendDir
  var chanOf2 reflect.Type = reflect.ChanOf(sendDir, reflect.TypeOf(s))

  fmt.Println("Channel kind : ", chanOf2.Kind())
  fmt.Println("Channel Direction : ", chanOf2.ChanDir())
  fmt.Println("Channel : ", chanOf2.String())

 }

Reference :

http://golang.org/pkg/reflect/#ChanOf

Advertisement