在指針中,可以使用cap()函數(shù)來查找指針的容量。這個函數(shù)是一個內(nèi)置函數(shù),返回指向數(shù)組的指針的容量。在Go語言中,容量定義了存儲在指向數(shù)組的指針中的最大元素數(shù)。此函數(shù)在內(nèi)置中定義。
語法:
func cap(l Type) int
在這里,l的類型是一個指針。讓我們借助示例來討論這個概念:
// Go程序來說明如何查找
//指向數(shù)組的指針的容量
package main
import (
"fmt"
)
func main() {
//創(chuàng)建和初始化
//指向數(shù)組的指針
//使用var關(guān)鍵字
var ptr1 [7]*int
var ptr2 [5]*string
var ptr3 [8]*float64
//查找容量
//指向數(shù)組的指針
//使用cap()函數(shù)
fmt.Println("ptr1 容量: ", cap(ptr1))
fmt.Println("ptr2 容量: ", cap(ptr2))
fmt.Println("ptr3 容量: ", cap(ptr3))
}輸出:
ptr1 容量: 7 ptr2 容量: 5 ptr3 容量: 8
Go獲取數(shù)組指針的容量的示例2:
package main
import (
"fmt"
)
func main() {
//創(chuàng)建數(shù)組
arr := [8]int{200, 300, 400, 500, 600, 700, 100, 200}
var x int
//創(chuàng)建指針
var p [5]*int
//分配地址
for x = 0; x < len(p); x++ {
p[x] = &arr[x]
}
//顯示結(jié)果
for x = 0; x < len(p); x++ {
fmt.Printf("p[%d] 的值= %d\n",x, *p[x])
}
// 使用 cap() 函數(shù)查找容量
fmt.Println("arr的容量: ", cap(arr))
fmt.Println("p的容量: ", cap(p))
}輸出:
p[0] 的值= 200 p[1] 的值= 300 p[2] 的值= 400 p[3] 的值= 500 p[4] 的值= 600 arr的容量: 8 p的容量: 5