ホームページ >バックエンド開発 >Golang >Golang 関数ポインタ配列と配列ポインタの応用スキル

Golang 関数ポインタ配列と配列ポインタの応用スキル

WBOY
WBOYオリジナル
2023-05-16 16:00:151836ブラウズ

Golang 言語の継続的な開発により、関数ポインター配列と配列ポインターも Golang プログラミングの重要な部分になりました。この記事では、Golang 関数におけるポインター配列と配列ポインターの応用スキルについて説明し、いくつかの実用的なサンプル コードと関連する説明を提供します。

Golang ポインタ配列の基本概念

まず、Golang ポインタ配列について理解しましょう。ポインターの配列は、異なる変数またはオブジェクトを指す複数のポインターで構成される配列であるデータ型です。次のコードを使用して、ポインター配列を宣言できます。

var ptrArr [4]*int

このコードは、長さ 4 のポインター配列を宣言します。ここで、各要素は int 型へのポインターです。もちろん、配列の長さを任意の値に設定することもできます。

Golang では、次の方法でポインタ配列に要素を追加できます。

var p1 = new(int)
var p2 = new(int)
var p3 = new(int)
var p4 = new(int)
ptrArr := [4]*int{p1, p2, p3, p4}

new 関数によって作成されたポインタ変数はメモリ アドレスを割り当て、そのアドレスへのポインタを返します。 。したがって、上記のコードはポインター配列に 4 つの要素を追加し、各要素は int 型の変数を指します。

ポインタ配列の応用

ポインタ配列は Golang プログラミングにおいて非常に便利で、さまざまな状況で使用できます。ここでは実際の使用例をいくつか示します。

  1. ポインター配列を使用して複数の変数を割り当てる

複数の変数を同じ値に設定する必要があるとします。この目的のためのポインタの配列。次のコードは、ポインターの配列を使用して int 型の複数の変数を設定する方法を示しています。

var a, b, c, d int
ptrArr := [4]*int{&a, &b, &c, &d}

for _, p := range ptrArr{
  *p = 8
}

fmt.Println(a, b, c, d) //将会输出 "8 8 8 8"

この例では、最初に int 型の 4 つの変数を宣言し、次に各要素を含むポインターの配列を作成します。はすべてこれら 4 つの変数へのポインタです。次に、for ループを使用してこのポインターの配列を反復処理し、各ポインターが指す値を 8 に設定します。

  1. ポインター配列を使用して、さまざまな型の変数に値を割り当てる

前の例との違いは、この例では、次の 2 つの変数を割り当てる必要があることです。タイプが異なる場合は同じ値に設定してください。次のコードは、ポインターの配列を使用して string 型の変数と int 型の変数を設定する方法を示しています。

var i int
var j string
ptrArr := [2]interface{}{&i, &j}

for _, p := range ptrArr{
  switch t := p.(type) {
   case *int:
     *t = 5
   case *string:
     *t = "Golang"
  }
}

fmt.Println(i, j) //将会输出 "5 Golang"

この例では、長さ 2 のポインター配列を使用します。 pointer to int 型変数へのポインタ、もう 1 つは string 型変数へのポインタです。 for ループと switch ステートメントを通じてこのポインターの配列を反復処理し、各ポインターが指す値を対応する値に設定します。

Golang 配列ポインターの基本概念

次に、Golang 配列ポインターについて学びましょう。配列ポインタは配列へのポインタです。次のコードを使用して配列ポインタを宣言できます:

var arrPtr *[4]int

この例では、int 型の配列へのポインタを宣言します。このポインタは配列全体を操作するために使用できます。

配列ポインターの使用

Golang プログラミングでは、配列ポインターをさまざまなタスクに使用できます。配列ポインターの使用例をいくつか示します。

  1. 配列をポインターとして関数に渡す

Golang では、配列とスライスは両方とも値型です。つまり、配列を関数に渡すと、関数は配列のコピーを作成します。関数に渡される配列を変更する場合は、配列ポインターを使用する必要があります。次のコードは、配列ポインターを使用して関数に配列を渡す方法を示しています。

func modifyArray(arr *[4]int) {
  arr[0] = 5
  arr[2] = 7
}

var arr [4]int
arrPtr := &arr
modifyArray(arrPtr)
fmt.Println(arr) //将会输出 "[5 0 7 0]"

この例では、最初に配列と配列ポインターを宣言します。次に、配列ポインタをmodifyArrayという関数に渡します。この関数は、渡された配列を変更します。関数modifyArrayでは、配列ポインタを介して関数の外で配列にアクセスし、それを変更できます。

  1. 配列の代わりとして配列ポインターを使用する

一部のシナリオでは、同じ目的を達成するために配列ポインターを配列の代わりに使用できます。次のコードは、配列ポインターを使用して配列を操作する方法を示しています。

arrPtr := new([4]int)
for i := 0; i < 4; i++ {
  arrPtr[i] = i + 1
}

for _, v := range arrPtr {
  fmt.Println(v)  //将会输出 "1 2 3 4"
}

この例では、new 関数を使用して新しい配列を割り当て、それを配列ポインターにポイントします。通常の配列にアクセスするのと同じように、このポインターを介して配列内の各要素にアクセスできます。

結論

この記事では、Golang 関数のポインター配列と配列ポインターの応用スキルについて詳しく説明し、いくつかの実践的なサンプル コードと関連する説明も提供しました。

ポインター配列と配列ポインターは、Golang プログラミングにおいて非常に重要なツールであり、さまざまなシナリオで使用できます。基本的な概念と使用方法を理解していれば、Golang プログラミングがより快適になります。

以上がGolang 関数ポインタ配列と配列ポインタの応用スキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:golang キャスト次の記事:golang キャスト