English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
ポインタでは、cap()関数を使用してポインタの容量を確認します。この関数は内蔵関数であり、配列のポインタの容量を返します。Go言語では、容量は配列のポインタに格納される最大要素数を定義します。この関数は内蔵で定義されています。
文法:
func cap(l Type) int
ここでは、lのタイプはポインタです。この概念についてサンプルを用いて説明しましょう:
// Goプログラムで説明 //配列のポインタの容量 package main import ( "fmt" ) func main() { //生成および初期化 //配列のポインタ //varキーワードを使用して var ptr1 [7]*int var ptr2 [5]*string var ptr3 [8]*float64 //容量を確認 //配列のポインタ //cap()関数を使用 fmt.Println("ptr1 容量: ", cap(ptr1)) fmt.Println("ptr2 容量: ", cap(ptr2)) fmt.Println("ptr3 容量: ", cap(ptr3)) }
出力:
ptr1 容量: 7 ptr2 容量: 5 ptr3 容量: 8
Goで配列ポインタの容量を取得する例2:
package main import ( "fmt" ) func main() { //配列を生成 arr := [8]int{20, 30, 40, 50, 60, 70, 100, 200} var x int //ポインタを生成 var p [5]*int //アドレスを割り当て for x = 0; x < len(p); x++ { p[x] = &arr[x] } //結果を表示 for x = 0; x < len(p); x++ { fmt.Printf("p[%d]の値= %d\n", x, *p[x]) } // cap()関数を使用して容量を確認します 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