Comment convertir int en string en Go : guide complet avec exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

« J’ai perdu une heure, et la solution tient en trois lignes » : comment convertir int en string en Go

\n\n

Imaginez : vous développez un microservice en Go, vous traitez des identifiants numériques d’utilisateurs et vous réalisez soudain que vous devez les concaténer avec du texte dans des logs ou une réponse HTTP. Vous écrivez quelque chose comme str := "User_" + id — et le compilateur affiche une erreur : cannot use id (type int) as type string in concatenation. Cela vous dit quelque chose ?

\n\n

C’est l’une des questions les plus populaires sur Stack Overflow concernant Go — « How to convert an int value to string in Go? » — elle a été consultée des centaines de milliers de fois. Et pour cause : en Go, le typage est strict, et on ne peut pas simplement « additionner » un nombre avec une chaîne. Mais ne vous inquiétez pas — aujourd’hui, nous allons passer en revue toutes les méthodes de conversion de int en string en Go. Vous découvrirez quelle méthode est la plus rapide, laquelle est la plus sûre, et quand les utiliser. C’est parti !

\n\n

Pourquoi Go n’autorise-t-il pas simplement l’addition d’un int et d’une string ?

\n\n

Contrairement à JavaScript ou Python, où "Age: " + 25 fonctionne « nativement », Go exige une conversion de type explicite. Cela a été fait pour des raisons de sécurité : vous devez toujours contrôler ce qui est converti en quoi. Imaginez que vous additionniez accidentellement un nombre avec du texte — dans d’autres langages, cela pourrait entraîner des bugs difficiles à détecter. En Go, le compilateur vous dit immédiatement : « Stop, ce n’est pas autorisé ».

\n\n

C’est pourquoi, pour convertir un int en string en Go, il existe des fonctions spéciales dans la bibliothèque standard. Aucune dépendance externe — seulement du Go pur.

\n\n

Méthode n°1 : fmt.Sprintf — le « couteau suisse » universel

\n\n

La méthode la plus intuitive consiste à utiliser la fonction fmt.Sprintf. Vous la connaissez probablement déjà grâce à l’affichage formaté. Elle peut convertir n’importe quoi en chaîne — nombres, booléens, structures.

\n\n
package main\n\nimport "fmt"\n\nfunc main() {\n    age := 25\n    str := fmt.Sprintf("Age: %d", age)\n    fmt.Println(str) // Affiche : Age: 25\n}
\n\n

Avantages :

\n
    \n
  • Très flexible : permet d’intégrer directement un nombre dans une chaîne avec le format souhaité (décimal, hexadécimal, avec des zéros non significatifs).
  • \n
  • Convient à tous les types — non seulement int, mais aussi float, bool, struct.
  • \n
\n\n

Inconvénients :

\n
    \n
  • Utilise la réflexion en interne, donc plus lent que les fonctions spécialisées.
  • \n
  • Si vous avez simplement besoin d’obtenir une chaîne à partir d’un nombre (sans formatage), c’est excessif.
  • \n
\n\n

Quand l’utiliser : lorsque vous devez non seulement convertir, mais aussi formater la sortie — ajouter des symboles monétaires, aligner sur une largeur, convertir en HEX.

\n\n

Méthode n°2 : strconv.Itoa — rapide et simple (int → string)

\n\n

Si votre objectif est simplement d’obtenir la représentation textuelle d’un nombre, sans aucun « fioriture », utilisez strconv.Itoa. C’est une fonction spécialisée pour la conversion de int en string. Elle est rapide et n’effectue pas d’opérations superflues.

\n\n
package main\n\nimport (\n    "fmt"\n    "strconv"\n)\n\nfunc main() {\n    number := 42\n    str := strconv.Itoa(number)\n    fmt.Println(str) // Affiche : "42"\n    fmt.Printf("Type : %T\\n", str) // Type : string\n}
\n\n

Avantages :

\n
    \n
  • Performances maximales pour le cas de base.
  • \n
  • Simplicité : une fonction — une action.
  • \n
\n\n

Inconvénients :

\n
    \n
  • Fonctionne uniquement avec le type int. Si vous avez int64, int32, etc., vous devez d’abord le convertir en int ou utiliser une autre méthode.
  • \n
  • Pas de contrôle sur la base numérique — uniquement la représentation décimale.
  • \n
\n\n

Quand l’utiliser : lorsque vous avez un int standard et que vous avez simplement besoin d’obtenir une chaîne — c’est votre choix par défaut.

\n\n

Méthode n°3 : strconv.FormatInt — contrôle de la base numérique

\n\n

Et si vous devez convertir un nombre en

Blogs

Book Recommendations