Conversion de Int32 en chaîne dans Go : au-delà de Int et Int64
Dans Go, la conversion d'un int32 en chaîne peut être effectuée sans avoir besoin pour les conversions intermédiaires en int ou int64. Voici plusieurs approches pour y parvenir :
1. Utilisation de fmt.Sprint(i)
s := fmt.Sprint(i)
Cette méthode fournit une solution simple sur une seule ligne.
2. Création d'une fonction de conversion personnalisée
Pour des performances optimales, une fonction de conversion personnalisée peut être créée :
func String(n int32) string { // Implementation details return string(buf[pos:]) }
3. Utilisation de strconv.Itoa(int(i))
s := strconv.Itoa(int(i))
Bien que cette approche implique d'abord une conversion en int, elle offre une solution relativement rapide.
4. Utilisation de strconv.FormatInt(int64(i), 10)
s := strconv.FormatInt(int64(i), 10)
Cette méthode fonctionne plus rapidement que strconv.Itoa, car elle convertit directement l'int32 en chaîne.
Comparaison des performances
Pour comparer l'efficacité de ces méthodes, un benchmark a été réalisé avec 50 millions d'itérations :
Method | Time Taken |
---|---|
String | 5.5923198s |
String2 | 5.5923199s |
strconv.FormatInt(int64(i), 10) | 5.9133382s |
strconv.Itoa(int(i)) | 5.9763418s |
fmt.Sprint(i) | 13.5697761s |
Comme le montrent les résultats, la fonction de conversion personnalisée String fournit le temps d'exécution le plus rapide.
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!