Comment convertir une valeur int en chaîne dans Go

  1. Fonction Itoa du paquet strconv
  2. Fonction FormatInt du paquet strconv
  3. Méthode fmt.Sprint

Les types de données déterminent les valeurs que l’on peut attribuer au type et les opérations qui peuvent être effectuées sur celui-ci. La conversion des types de données est une opération largement utilisée en programmation et parmi les conversions de types de données, la conversion de int en valeur de chaîne est très populaire.

Elle est utilisée lors de l’impression d’un nombre à l’écran ou pour travailler avec le nombre comme s’il s’agissait d’une chaîne. Go fournit la conversion de chaînes et d’entiers directement à partir d’un paquet provenant de la bibliothèque standard strconv.

Si nous utilisons la conversion simple int vers string, la valeur entière est interprétée comme un point de code Unicode. Et la chaîne résultante contiendra le caractère représenté par le point de code, encodé en UTF-8.

package main

import "fmt"

func main() {
    s := string(97)
    fmt.Printf("Value of 97 after conversion : %v\n", s)
}  

Production:

Value of 97 after conversion : a

Mais ceci n’est pas souhaitable, et c’est pourquoi nous utilisons certaines fonctions standard pour convertir des entiers en type de données de type chaîne, qui sont discutées ci-dessous:

Fonction Itoa du paquet strconv

Le paquet strconv implémente des conversions vers et à partir de représentations de chaînes de caractères de types de données de base. Pour convertir un nombre entier en une chaîne de caractères, nous utilisons la fonction Itoa du paquet strconv.

package main

import (
    "fmt"
    "strconv"
)

func main() {
    x := 138
    fmt.Printf("Datatype of 138 before conversion : %T\n", x)
    a := strconv.Itoa(x)
    fmt.Printf("Datatype of 138 after conversion : %T\n", a)

    fmt.Println("Number: " + a)
}    

Production:

Datatype of 138 before conversion : int
Datatype of 138 after conversion : string
Number: 138

Fonction FormatInt du paquet strconv

Nous utilisons strconv.FormatInt pour formater un int64 dans une base donnée. Le FormatInt donne la représentation de la chaîne de caractères d’un entier dans la base mentionnée, pour 2 <= base <= 36 et le résultat utilise les lettres minuscules a à z pour les valeurs numériques >= 10.

package main

import (
    "fmt"
    "strconv"
)

func main() {
    var integer_1 int64 = 31
    fmt.Printf("Value of integer_1 before conversion : %v\n", integer_1)
    fmt.Printf("Datatype of integer_1 before conversion : %T\n", integer_1)

    var string_1 string = strconv.FormatInt(integer_1, 10)
    fmt.Printf("Value of integer_1 after conversion in base 10: %v\n", string_1)
    fmt.Printf("Datatype of integer_1 after conversion in base 10 : %T\n", string_1)

    var string_2 string = strconv.FormatInt(integer_1, 16)
    fmt.Printf("Value of integer_1 after conversion in base 16 : %v\n", string_2)
    fmt.Printf("Datatype of integer_1 after conversion in base 16 : %T\n", string_2)
}    

Production:

Value of integer_1 before conversion : 31
Datatype of integer_1 before conversion : int64
Value of integer_1 after conversion in base 10: 31
Datatype of integer_1 after conversion in base 10 : string
Value of integer_1 after conversion in base 16 : 1f
Datatype of integer_1 after conversion in base 16 : string

Méthode fmt.Sprint

Lorsque nous passons un entier dans la méthode fmt.Sprint, nous obtenons une valeur de chaîne de l’entier.

package main

import (
    "fmt"
)

func main() {

    x := 138
    fmt.Printf("Datatype of 138 before conversion : %T\n", x)
    a := fmt.Sprint(x)
    fmt.Printf("Datatype of 138 after conversion : %T\n", a)

    fmt.Println("Number: " + a)
}  

Production:

Datatype of 138 before conversion : int
Datatype of 138 after conversion : string
Number: 138

Article connexe - Go String

  • Comment écrire des chaînes de caractères multilignes dans Go