ホームページ > バックエンド開発 > Golang > golang: スライス間での配列の共有

golang: スライス間での配列の共有

WBOY
リリース: 2024-02-09 22:42:09
転載
893 人が閲覧しました

golang: スライス間での配列の共有

phpエディターZimoは、この記事でgolangのスライス間での配列共有の知識を紹介します。 golang では、スライスは必要に応じて自動的に拡張できる動的配列です。スライス間の配列共有は golang の非常に重要な機能であり、データをコピーせずに複数のスライスが同じ基礎となる配列を共有できるようになります。これにより、メモリ領域が節約されるだけでなく、パフォーマンスも向上します。次に、スライス間での配列共有の原理と使い方について詳しく説明します。

質問内容

スライスの追加機能について説明します。

上で述べたように、append は更新されたスライスを返します。

これは、新しく作成されたスライスが基礎となる配列を既存のスライスと共有しないことを意味しますか?

mySlice[x:y] などの他のスライス操作の場合、以下に示すように、新しいスライスは基礎となる配列を mySlice と共有します。

PS: テストコード:

リーリー

つまり、この場合、名前には十分な空き容量があります。したがって、追加では新しい基になる配列を作成できません。

出力:

リーリー

出力は共有の基礎となる配列と同じであるべきではないでしょうか?

ここでは非常に基本的なことが間違いなく欠けています。

回避策

おっしゃるとおり、names1names と同じ基になる配列を使用します。

いいえ、names の長さは 4 であり、names1 の長さは 5 であるため、出力は同じではありません。どちらも容量 (10) があることに注意してください。

これを少し明確にする例を次に示します:

リーリー

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

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