Comprendre la fonction de copie dans Go
La fonction de copie dans Go, telle que documentée, est une fonction intégrée qui facilite la copie de éléments d’une tranche source vers une tranche de destination. Elle opère sur des tranches du même type d'élément et peut gérer les cas où la source et la destination se chevauchent.
Comment fonctionne la copie
La fonction de copie prend deux paramètres : une destination slice dst et une tranche source src. Il renvoie un entier représentant le nombre d'éléments copiés avec succès. Le nombre d'éléments copiés est déterminé par la longueur minimale des tranches source et destination.
Exemples
Illustrons la fonctionnalité de copie avec quelques exemples :
<code class="go">src := []int{10, 11, 12, 13, 14} dst := []int{0, 1, 2, 3, 4} // Copy all elements from src to dst. n := copy(dst, src) fmt.Println(n, src, dst) // Output: 5 [10 11 12 13 14] [10 11 12 13 14]</code>
Dans cet exemple, les cinq éléments de src seront copiés dans dst, laissant les deux tranches avec les mêmes éléments.
<code class="go">dst = []int{0, 1} // Copy only as many elements as the shorter of src and dst. n = copy(dst, src) fmt.Println(n, src, dst) // Output: 2 [10 11 12 13 14] [10 11]</code>
Dans ce cas, dst n'a que deux éléments, donc seulement deux éléments sont copiés, ce qui fait que dst contient les deux premiers éléments de src.
<code class="go">src = []int{10, 11} dst = []int{0, 1, 2, 3, 4} // Copy only as many elements as the shorter of src and dst. n = copy(dst, src) fmt.Println(n, src, dst) // Output: 2 [10 11] [10 11 2 3 4]</code>
De même, lorsque src a moins d'éléments que dst, seuls les éléments disponibles dans src sont copiés et les éléments restants dans dst restent inchangés.的字节拷贝到字节片([]byte)中:
Chevauchement
La copie peut gérer les situations où les tranches source et de destination se chevauchent. Dans de tels cas, les éléments de la partie superposée seront copiés, laissant l'ordre des éléments dans la tranche de destination inchangé.<code class="go">str := "Hello, World!" data := make([]byte, 5) // Copy 5 bytes from the UTF-8 representation of str into data. n = copy(data, str) fmt.Println(n, str, data) // Output: 5 Hello, World! [72 101 108 108 111]</code>
Conclusion
La fonction de copie dans Go fournit un moyen pratique de copier des éléments d’une tranche à une autre. Il permet une flexibilité dans la gestion des cas avec différentes longueurs de tranches et chevauchements, ce qui en fait un outil utile pour manipuler les données dans les tranches.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!