Golang reflect.Cap()的使用示例
Go语言提供了内置支持运行时反射实现,使用reflect软件包允许程序使用任意类型的对象进行操作。在Golang中, reflect.Cap() 函数用于获取v的容量。要访问此函数,需要在程序中导入reflect软件包。
语法:
func(v Value)Cap() int
参数: 此函数不接受任何参数。
返回值: 此函数返回整数值。
下面的示例说明了在Golang中使用上述方法的用法:
示例1:
// Golang程序说明 // reflect.Cap()函数
package main
import ( "fmt" "reflect" )
func main() {
c := make(chan int, 1)
vc := reflect.ValueOf(c)
succeeded := vc.TrySend(reflect.ValueOf(123))
//使用Cap()方法
fmt.Println(succeeded, vc.Len(), vc.Cap())
}
输出:
true 1 1
示例2:
// Golang程序说明
// reflect.Cap()函数
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)
// 使用Cap()方法
fmt.Printf("Type : [%v] \nCapacity : [%v]", value.Kind(), value.Cap())
}
输出:
Type : [chan] Capacity : [1024]
极客教程