Conversion entre chaînes de caractères (strings) et entiers (integers)
Nous pouvons utiliser les fonctions du package strconv
pour convertir entre les chaînes de caractères (strings) et les entiers (integers) :
package main
import (
"fmt"
"strconv"
)
func main() {
// Déclare une chaîne de caractères a et un entier b
a, b := "233", 223
// Utilise Atoi pour convertir une chaîne de caractères en entier
c, _ := strconv.Atoi(a)
// Utilise respectivement les fonctions Sprintf et Itoa
// pour convertir un entier en chaîne de caractères
d1 := fmt.Sprintf("%d", b)
d2 := strconv.Itoa(b)
fmt.Printf("Le type de a : %T\n", a) // string
fmt.Printf("Le type de b : %T\n", b) // int
fmt.Printf("Le type de c : %T\n", c) // int
fmt.Printf("Le type de d1 : %T\n", d1) // string
fmt.Printf("Le type de d2 : %T\n", d2) // string
}
go run string.go
La sortie attendue est la suivante :
Le type de a : string
Le type de b : int
Le type de c : int
Le type de d1 : string
Le type de d2 : string
Dans le programme, nous utilisons la fonction Sprintf()
du package fmt
, qui a le format suivant :
func Sprintf(format string, a...interface{}) string
format
est une chaîne de caractères avec des séquences d'échappement, a
est une constante ou une variable qui fournit des valeurs pour les séquences d'échappement, et ...
signifie qu'il peut y avoir plusieurs variables du même type que a
. La chaîne de caractères après la fonction indique que Sprintf
renvoie une chaîne de caractères. Voici un exemple d'utilisation de cette fonction :
a = fmt.Sprintf("%d+%d=%d", 1, 2, 3)
fmt.Println(a) // 1+2=3
Dans ce extrait de code, format
est passé avec trois variables entières 1, 2 et 3. Le caractère d'échappement d'entier %d
dans format
est remplacé par les valeurs entières, et la fonction Sprintf
renvoie le résultat après remplacement, 1+2=3
.
Notez également que lorsque vous utilisez strconv.Atoi()
pour convertir une chaîne de caractères en entier, la fonction renvoie deux valeurs, l'entier converti val
et le code d'erreur err
. En effet, en Go, si vous déclarez une variable, vous devez l'utiliser. Nous pouvons donc utiliser un tiret bas _
pour ignorer la variable err
.
Lorsque strconv.Atoi()
effectue la conversion correctement, err
renvoie nil
. Lorsqu'une erreur se produit lors de la conversion, err
renvoie le message d'erreur, et la valeur de val
sera 0. Vous pouvez modifier la valeur de la chaîne de caractères a
et remplacer le tiret bas par une variable normale pour tester vous-même. C'est une bonne pratique pour la gestion des erreurs, qui est une partie cruciale de la programmation en Go.