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

25 lines
415 B
Go

package main
import (
"fmt"
"reflect"
)
func main() {
ch := make(chan int, 1)
vch := reflect.ValueOf(ch)
succeed := vch.TrySend(reflect.ValueOf(100))
fmt.Println(succeed, vch.Len(), vch.Cap())
branches := []reflect.SelectCase{
{Dir: reflect.SelectDefault},
{Dir: reflect.SelectRecv, Chan: vch},
}
index, vRecv, recvOk := reflect.Select(branches)
fmt.Println(index, vRecv, recvOk)
vch.Close()
}