33 lines
519 B
Go
33 lines
519 B
Go
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()
|
|
}
|