chan转换
2018-12-07 本文已影响0人
bocsoft
package main
import "fmt"
func main() {
var ok bool
ch := make(chan int, 1)
_, ok = interface{}(ch).(<-chan int)//先强转空接口,再做类型断言
fmt.Println("chan int => <- chan int:", ok) //chan int => <- chan int: false
_, ok = interface{}(ch).(chan<- int)
fmt.Println("chan int => chan<- int:", ok)//chan int => chan<- int: false
sch := make(chan<- int, 1)
_, ok = interface{}(sch).(chan int)
fmt.Println("chan<- int => chan int:", ok) //chan<- int => chan int: false
rch := make(<-chan int, 1)
_, ok = interface{}(rch).(chan int)
fmt.Println("<-chan int=> chan int:", ok) //<-chan int=> chan int: false
}