phpエディターZimoは、この記事でgolangのスライス間での配列共有の知識を紹介します。 golang では、スライスは必要に応じて自動的に拡張できる動的配列です。スライス間の配列共有は golang の非常に重要な機能であり、データをコピーせずに複数のスライスが同じ基礎となる配列を共有できるようになります。これにより、メモリ領域が節約されるだけでなく、パフォーマンスも向上します。次に、スライス間での配列共有の原理と使い方について詳しく説明します。
スライスの追加機能について説明します。
上で述べたように、append は更新されたスライスを返します。
これは、新しく作成されたスライスが基礎となる配列を既存のスライスと共有しないことを意味しますか?
mySlice[x:y] などの他のスライス操作の場合、以下に示すように、新しいスライスは基礎となる配列を mySlice と共有します。
PS: テストコード:
リーリーつまり、この場合、名前には十分な空き容量があります。したがって、追加では新しい基になる配列を作成できません。
出力:
リーリー出力は共有の基礎となる配列と同じであるべきではないでしょうか?
ここでは非常に基本的なことが間違いなく欠けています。
おっしゃるとおり、names1
は names
と同じ基になる配列を使用します。
いいえ、names
の長さは 4 であり、names1
の長さは 5 であるため、出力は同じではありません。どちらも容量 (10) があることに注意してください。
これを少し明確にする例を次に示します:
リーリー以上がgolang: スライス間での配列の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。