コピー関数を理解する
Go の「コピー」関数は、ソース スライスから宛先スライスに要素を転送するために使用されます。その動作と使用法を詳しく見てみましょう。
基本操作
ドキュメントによると、「copy」関数は要素をソース スライスから宛先スライスにコピーします。 2 つの引数を取ります:
この関数は、コピーされた要素の数を表す整数を返します。
重複するスライス
「コピー」の重要な機能の 1 つは、重複するスライスを処理できることです。コピー元スライスとコピー先スライスが同じ基になる配列を共有している場合、関数はコピー操作を正常に完了します。
コピー数の決定
コピーされる要素の数は、ソーススライスと宛先スライス間の最小長。ソース スライスの要素が宛先スライスよりも少ない場合は、ソース内の要素の数だけがコピーされます。逆に、宛先スライスの要素がソース スライスよりも少ない場合は、宛先に適合する数の要素のみがコピーされます。
使用例
次の例では、ソース スライス src から宛先スライス dst に要素をコピーします。
<code class="go">package main import "fmt" func main() { src := []int{10, 11, 12, 13, 14} dst := []int{0, 1, 2, 3, 4} n := copy(dst, src) fmt.Println("n =", n, "src =", src, "dst =", dst) }</code>
出力:
n = 5 src = [10 11 12 13 14] dst = [10 11 12 13 14]
この例では、5 つの要素が src から dst にコピーされます。両方のスライスの容量は 5 で、ソース スライスのすべての要素を保持するには十分です。
特殊なケース: 文字列からのバイトのコピー
"copy" は可能です。また、文字列 (本質的にはバイトのスライス) から宛先のバイトのスライスにバイトをコピーするためにも使用されます。この機能により、文字列を簡単に操作できます。
概要
「コピー」機能は、スライス長を考慮したり、重複するスライスを処理したりして、スライス間で要素を転送するための多用途ツールです。 。 Go プログラムでスライスを効果的に操作するには、その動作を理解することが重要です。
以上がGo の「コピー」関数は重複するスライスをどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。