Golang reflect.MakeChan()函数及其示例
Go语言通过reflect包提供了内置支持的运行时反射实现,使程序可以使用reflect包来操作具有任意类型的对象。 reflect.MakeChan() 函数用于创建指定类型和缓冲区大小的新通道。要访问此函数,需要在程序中导入reflect包。
语法:
func MakeChan(typ Type, buffer int) Value
参数: 此函数仅有两个参数,分别为Type类型(typ)和int类型(buffer)。
返回值: 此函数返回新创建的通道。
下面的示例说明如何在Go语言中使用上述方法:
示例1:
// Go语言程序示例
// reflect.MakeChan()函数
package main
import (
"fmt"
"reflect"
)
// 主函数
func main() {
var val chan int
// 创建新通道
value := reflect.MakeChan(reflect.Indirect(reflect.ValueOf(&val)).Type(), 0)
fmt.Println("Value :", value)
}
输出:
Value : 0xc00005e060
示例2:
// Go语言程序示例
// reflect.MakeChan()函数
package main
import (
"fmt"
"reflect"
)
// 主函数
func main() {
var val chan string
var strVal reflect.Value = reflect.ValueOf(&val)
indirectStr := reflect.Indirect(strVal)
// 创建新通道
value := reflect.MakeChan(indirectStr.Type(), 1024)
fmt.Printf("Type : [%v] \nCapacity : [%v]", value.Kind(), value.Cap())
}
输出:
Type : [chan]
Capacity : [1024]
极客教程