golang 配列の増加

WBOY
リリース: 2023-05-16 10:06:37
オリジナル
2688 人が閲覧しました

Golang は、シンプルでわかりやすい構文、効率的な実行速度、豊富な標準ライブラリを備えた強力なプログラミング言語です。 Golang では、配列は同じ型の複数の値を変数に格納できる一般的なデータ型です。配列のサイズは宣言時に指定する必要がありますが、いくつかのトリックを使用して配列に要素を追加できます。

Golang における配列の基本的な定義形式は次のとおりです。

var arrayName [size]dataType
ログイン後にコピー

このうち、arrayName は配列の名前、size は配列の要素数、dataType は配列の要素を表します。配列要素のデータ型。たとえば、長さ 5 の配列を定義し、整数型の要素を格納するには、次のコードを使用できます。

var intArray [5]int
ログイン後にコピー

次に、Golang 配列に要素を追加するいくつかの方法を紹介します。

append 関数の使用

Golang では、append 関数を使用して要素を配列に動的に追加できます。 append関数は新しいスライスを返し、このスライスの長さは必要に応じて自動的に増加します。以下は、append 関数を使用して要素を配列に追加するサンプル コードです。

package main

import "fmt"

func main() {
  a := []int{1, 2, 3, 4, 5}
  a = append(a, 6)
  fmt.Println(a) // [1 2 3 4 5 6]
}
ログイン後にコピー

上記のサンプル コードでは、長さの配列 a を使用しました。 5の。次に、append 関数を呼び出して、新しい要素として 6 を a に追加しました。 append 関数の最初のパラメータは配列ではなくスライスである必要があることに注意してください。

スライスの使用

スライスは Golang の非常に強力なデータ型であり、配列を簡単に追加、削除、変更できます。配列をスライスに変換し、スライス操作を使用してそれに要素を追加できます。以下は、スライスを使用して配列要素を増やすサンプル コードです。

package main

import "fmt"

func main() {
  a := [5]int{1, 2, 3, 4, 5}
  b := a[:] // 将数组a转换成切片b
  b = append(b, 6)
  fmt.Println(b) // [1 2 3 4 5 6]
}
ログイン後にコピー

上記のサンプル コードでは、まず配列 a をスライス b に変換します。 use append 関数は、新しい要素 6 を b に追加します。

コピー関数を使用する

Golang の copy 関数は、配列またはスライスの要素を別の配列またはスライスにコピーできます。 copy 関数を使用すると、配列内のすべての要素を新しいより大きな配列にコピーし、配列のサイズを増やすことができます。以下は、copy 関数を使用して配列をより大きな配列にコピーし、それによって配列のサイズを増やすサンプル コードです:

package main

import "fmt"

func main() {
  a := [5]int{1, 2, 3, 4, 5}
  b := [10]int{} // 定义长度为10的新数组b
  copy(b[:], a[:]) // 将a中的元素复制到b中
  fmt.Println(b) // [1 2 3 4 5 0 0 0 0 0]
}
ログイン後にコピー

上記のサンプル コードでは、最初に長さを定義します。は 5 a の配列であり、長さ 10 b の配列を作成します。次に、copy 関数を使用して、a の要素を b にコピーします。 ba より大きいため、コピー操作が完了すると、a の要素を除き、b の他のすべての要素は に設定されます。ゼロの値。

要約すると、Golang 配列に要素を追加するには主に 3 つの方法があります。append 関数を使用する方法、スライスを使用する方法、および copy 関数を使用する方法です。これらの方法では、アプリケーションのニーズを満たすためにアレイのサイズを効果的に増やすことができます。

以上がgolang 配列の増加の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート