在指針中,可以使用cap()函數(shù)來查找指針的容量。這個(gè)函數(shù)是一個(gè)內(nèi)置函數(shù),返回指向數(shù)組的指針的容量。在Go語言中,容量定義了存儲(chǔ)在指向數(shù)組的指針中的最大元素?cái)?shù)。此函數(shù)在內(nèi)置中定義。
語法:
func cap(l Type) int
在這里,l的類型是一個(gè)指針。讓我們借助示例來討論這個(gè)概念:
// 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