Исходники и презентации
This commit is contained in:
24
lessons/generics_and_reflection/reflect_select/main.go
Normal file
24
lessons/generics_and_reflection/reflect_select/main.go
Normal file
@ -0,0 +1,24 @@
|
||||
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()
|
||||
}
|
||||
Reference in New Issue
Block a user