php エディタ Xinyi Go 言語では、スライスは必要に応じて動的に拡張できる動的配列です。スライスの完全な再スライスとスライスの違いは、完全な再スライスでは、元のスライスとは異なる容量と長さを持つことができる新しいスライスが作成されることです。スライス間の代入操作では、元のスライスの参照が新しいスライスにコピーされるだけであり、新しいスライスは、基になる配列の記憶構造を元のスライスと共有します。したがって、新しいスライスに変更が加えられると、元のスライスも影響を受けます。これは、スライスとスライスの完全な再スライスとの重要な違いです。
スライスとフルスライスの違いはありますか?
スライスを与える s:= make([]byte, 4, 4)
,
copy(s[:], "data")
と copy(s, "data")
には違いがありますか?
これら 2 行のコードは異なる結果を出力しますか?
Go のスライスには 3 つのプロパティがあります:
s
と s[:]
は、上記のすべてのプロパティに関して同一です。
Go は実際にはスライスの ==
操作を定義しませんが、s
と s[:]
はすべて測定可能なという意味では同じです。性質は等しい。
copy
この関数は、最初の 2 つのプロパティのみに焦点を当てます。これらのプロパティは、s
と s[:]
の間で同じです。
以上がGo スライスの場合、スライスとスライスの完全な再スライスの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。