25 lines
415 B
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()
|
|
}
|