Files
deep_go/lessons/generics_and_reflection/reflect_channel/main.go

33 lines
519 B
Go
Raw Normal View History

package main
import (
"fmt"
"reflect"
)
func main() {
ch := make(chan string, 2)
vCh := reflect.ValueOf(ch)
vCh.Send(reflect.ValueOf("Go"))
succeeded := vCh.TrySend(reflect.ValueOf("C++"))
fmt.Println("C++", succeeded)
succeeded = vCh.TrySend(reflect.ValueOf("Java"))
fmt.Println("Java", succeeded)
fmt.Println(vCh.Len(), vCh.Cap())
value, ok := vCh.Recv()
fmt.Println(value, ok)
value, ok = vCh.TryRecv()
fmt.Println(value, ok)
value, ok = vCh.TryRecv()
fmt.Println(value, ok)
vCh.Close()
}