English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang 基礎トレーニング

Golang 制御文

Golang 関数 & メソッド

Golang 構造体

Golang スライス & 配列

Golang 文字列(String)

Golang ポインタ

Golang インターフェース

Golang 并行

Golang エラ(Error)

Golang その他の雑多

Go 言語のポインタの容量

ポインタでは、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