Golang reflect.ChanOf()函数及其示例
Go语言提供了内置的运行时反射支持,并允许程序使用reflect包操作任意类型的对象。 reflect.ChanOf()函数在Golang中用于获取具有给定方向和元素类型的通道类型,即t表示int,ChanOf(RecvDir,t)表示<-chan int。 要访问此功能,需要在程序中导入reflect包。
语法:
func ChanOf(dir ChanDir, t Type) Type
参数: 此函数接收ChanDir类型(dir)和Type类型(t)的三个参数。
返回值: 此函数返回具有指定方向和元素类型的函数类型。
下面的例子演示了在Golang中使用以上方法的用法:
例1:
// Golang程序演示
// reflect.ChanOf()函数
package main
import (
"fmt"
"reflect"
)
// 主函数
func main() {
var k = reflect.TypeOf(0)
// 使用ChanOf方法
fmt.Println(reflect.ChanOf(reflect.SendDir,k))
}
输出:
chan<- int
例2:
// Golang程序演示
// reflect.ChanOf()函数
package main
import (
"fmt"
"reflect"
)
// 主函数
func main() {
ta := reflect.ArrayOf(5,reflect.TypeOf(123))
// 使用ChanOf方法
tc := reflect.ChanOf(reflect.SendDir,ta)
fmt.Println(tc)
}
输出:
chan<- [5]int
极客教程