ホームページ > バックエンド開発 > Golang > Go の特定のインデックスのスライスに値を挿入するにはどうすればよいですか?

Go の特定のインデックスのスライスに値を挿入するにはどうすればよいですか?

DDD
リリース: 2024-11-16 06:14:02
オリジナル
818 人が閲覧しました

How to Insert a Value into a Slice at a Specific Index in Go?

指定されたインデックスのスライスに値を挿入する

問題:

2 つの整数スライス、array1 と array2 が与えられた場合、目標は、既存の順序を維持しながら、array1 の特定のインデックスに array2 の要素を挿入することです。要素。示されている例では、これは、array1[1] に 6 である array2[2] を挿入することを意味し、その結果、array1 は [1, 6, 3, 4, 5] になります。

: 演算子:

スライスに値を挿入する従来のアプローチでは、: 演算子を利用して新しいスライスを作成します。ただし、この手法では通常、追加の要素が挿入されることになりますが、この場合は望ましい動作ではありません。

代替ソリューション:

1. Go 1.21 のスライス.挿入関数:

Go 1.21 のリリースでは、スライスに値を挿入するプロセスを簡素化する専用のスライス.挿入関数が導入されました。その構文は次のとおりです。

この関数は、元のスライス、値が挿入されるインデックス、および値自体の 3 つの引数を取ります。指定されたインデックスに値を挿入し、スライス内の後続の要素を右にシフトします。

2.手動挿入:

もう 1 つのアプローチには 2 段階のプロセスが含まれます:

  • ステップ 1: 追加のスライスを収容するのに十分な容量を持つ新しいスライスを作成します。 value.
  • ステップ 2: 既存の要素を元のスライスから値が挿入されるインデックスをスキップしながら新しいスライスを作成します。

3.ジェネリック関数:

ジェネリック関数挿入は、任意のタイプのスライスを処理するために実装できます:

この関数は、手動挿入方法と同様のアプローチに従いますが、次のような柔軟性を提供します。異なるタイプのスライスで使用できるようにします。

4. Make と Copy の使用:

もう 1 つのオプションは、make 関数を使用して目的の容量を持つ新しいスライスを作成し、次に copy 関数を使用して既存の要素をコピーしながら、指定されたインデックスに値を挿入することです。 :

ベンチマーク:

パフォーマンス ベンチマーク ショーこれは、slices.Insert 関数が最も効率的であり、次に汎用の insert 関数が続くということです。全体として、最も適切な方法は、プログラムの特定の要件と使用されている Go のバージョンによって異なります。

以上がGo の特定のインデックスのスライスに値を挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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