Création d'une copie complète d'une tranche dans Go
Lorsque vous travaillez avec des tranches dans Go, il est crucial de savoir comment créer des copies complètes pour assurez-vous que les modifications apportées à une copie n’affectent pas l’original. Une approche efficace consiste à exploiter la fonction de copie intégrée.
Utilisation de la fonction « copier »
La fonction de copie prend deux tranches comme arguments, une tranche de destination dst et une tranche source src. Il copie les éléments de src vers dst, même si les deux tranches se chevauchent. La fonction renvoie le nombre d'éléments copiés avec succès.
Exemple :
cpy := make([]T, len(orig)) n := copy(cpy, orig)
Dans cet exemple, une nouvelle copie de tranche est créée avec la même longueur que l'originale tranche orig. La fonction de copie est ensuite utilisée pour copier des éléments de orig vers cpy, n représentant le nombre d'éléments copiés.
Analyse des performances
Pour comparer les performances de la copie fonction avec la méthode d’ajout couramment utilisée, un benchmark a été réalisé. Les résultats ont montré que les deux méthodes ont des performances comparables :
BenchmarkCopy: 24724 ns/op BenchmarkAppend: 24967 ns/op
Considérations
Il est important de noter que même si la fonction de copie crée une copie complète des valeurs de tranche, il ne gère pas la copie de pointeurs ou de structures avec des champs de pointeur. Ces champs pointeront toujours vers les mêmes valeurs que dans la tranche d'origine.
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!