Golang では、配列は同じ型の要素を含む固定長の順序付けされたコレクションです。ただし、実際の開発では、配列要素を変更する必要がある状況に遭遇する可能性があります。
まず、Golang では配列は値型であることを明確にする必要があります。これは、配列を別の配列に代入する場合、または配列をパラメータとして渡す場合、実際には元の配列そのものではなく、配列のコピーを渡すことになることを意味します。したがって、配列要素を変更する場合は、そのコピーではなく、元の配列を変更する必要があります。
配列内の要素を変更する最も基本的な方法は、配列内の要素をインデックスで参照し、新しい値を割り当てることです。
arr := [3]int{1, 2, 3} arr[0] = 4
上の例では、次の整数を作成しました。 length 3 配列の最初の要素を 1 から 4 に変更します。この方法は比較的シンプルで理解しやすいですが、場合によっては配列全体を操作する必要があり、その場合には配列ポインターを使用する必要があります。
Golang では、配列のポインタ型は、配列の最初の要素を指すポインタです。 「&」演算子を使用して配列のポインタを取得できます。
arr := [3]int{1, 2, 3} ptr := &arr[0] //指向arr数组的第一个元素
上の例では、長さ 3 の整数配列を作成し、その最初の要素のポインタを ptr に割り当てました。次に、ptr ポインタが指す値を変更することで、配列全体を変更できます。
*ptr = 4 //修改第一个元素的值 *(ptr+1) = 5 //修改第二个元素的值 *(ptr+2) = 6 //修改第三个元素的值
上記の例では、「」演算子を使用します。これは、ptr ポインタが指す値を取得することを意味します。ポインタの値。 「 」演算子を使用すると、配列内の任意の位置に移動し、「」演算子を使用してその位置の値を変更できます。
さらに、Golang には配列の処理に特化した組み込み関数「copy」があります。この関数は、ある配列から別の配列に要素をコピーし、実際にコピーされた要素の数を返します。
arr1 := [3]int{1, 2, 3} arr2 := [3]int{} //创建一个长度为3的空数组 num := copy(arr2[:], arr1[:]) //将arr1的元素复制到arr2中,并返回复制的元素数量
上の例では、長さ 3 の 2 つの整数配列を作成し、arr1 の要素を arr2 にコピーし、コピーされた要素の数を返しました。 「[:]」演算子を使用して配列全体のスライスを取得し、それによって配列全体を別の配列にコピーしていることに注意してください。
一般に、Golang では配列要素を変更する方法がたくさんあります。単純なケースでは、インデックスによって配列内の要素を直接参照し、新しい値を割り当てることができます。より複雑な場合は、配列ポインターを使用して操作したり、組み込み関数「copy」を使用して 1 つの配列を別の配列にコピーしたりできます。いずれの場合も、配列は値型であるため、コピーではなく元の配列を変更する必要があることに注意してください。
以上がgolang 配列の変更の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。