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