Go-array-of-pointers

提供:Dev Guides
移動先:案内検索

Go-ポインターの配列

ポインタの配列の概念を理解する前に、3つの整数の配列を利用する次の例を考えてみましょう-

package main

import "fmt"

const MAX int = 3

func main() {
   a := []int{10,100,200}
   var i int

   for i = 0; i < MAX; i++ {
      fmt.Printf("Value of a[%d] = %d\n", i, a[i] )
   }
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

Value of a[0] = 10
Value of a[1] = 100
Value of a2] = 200

配列を維持したい場合があります。配列には、intまたは文字列へのポインタ、または利用可能な他のデータ型を格納できます。 次のステートメントは、整数へのポインタの配列を宣言します-

var ptr [MAX]*int;

これは、 ptr をMAX整数ポインターの配列として宣言します。 したがって、ptrの各要素は、int値へのポインターを保持するようになりました。 次の例では、次のようにポインタの配列に格納される3つの整数を利用します-

package main

import "fmt"

const MAX int = 3

func main() {
   a := []int{10,100,200}
   var i int
   var ptr [MAX]*int;

   for  i = 0; i < MAX; i++ {
      ptr[i] = &a[i]/*assign the address of integer.*/
   }
   for  i = 0; i < MAX; i++ {
      fmt.Printf("Value of a[%d] = %d\n", i,*ptr[i] )
   }
}

上記のコードをコンパイルして実行すると、次の結果が生成されます-

Value of a[0] = 10
Value of a[1] = 100
Value of a[2] = 200