Wie konvertiert man einen int Wert in Go in einen String?

  1. Itoa-Funktion aus dem strconv-Paket
  2. FormatInt-Funktion aus dem strconv-Paket
  3. fmt.Sprint-Methode

Datentypen bestimmen die Werte, die Sie dem Typ zugewiesen werden können, und die Operationen, die darauf ausgeführt werden können. Die Konvertierung von Datentypen ist eine in der Programmierung weit verbreitete Operation, und unter den Datentypkonvertierungen ist die Konvertierung von int in den Zeichenkettenwert weit verbreitet.

Sie wird verwendet, wenn man eine Zahl auf den Bildschirm druckt oder mit der Zahl arbeitet, als ob sie eine Zeichenfolge wäre. Go bietet die Konvertierung von Zeichenketten und Ganzzahlen direkt aus einem Paket, das aus der Standardbibliothek strconv stammt.

Wenn wir eine einfache Konvertierung von int in String verwenden, wird der Integer-Wert als Unicode-Codepunkt interpretiert. Und die resultierende Zeichenkette wird das Zeichen enthalten, das durch den Codepoint repräsentiert wird, kodiert in UTF-8.

package main

import "fmt"

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

Ausgabe:

Value of 97 after conversion : a

Aber das ist unerwünscht, und deshalb verwenden wir einige Standardfunktionen zur Konvertierung von Ganzzahlen in den Datentyp Zeichenkette, die weiter unten besprochen werden:

Itoa-Funktion aus dem strconv-Paket

Paket strconv implementiert Konvertierungen von und zu Zeichenkettenrepräsentationen von Basisdatentypen. Um eine ganze Zahl in eine Zeichenkette zu konvertieren, verwenden wir die Funktion Itoa aus dem Paket 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)
}    

Ausgabe:

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

FormatInt-Funktion aus dem strconv-Paket

Wir benutzen strconv.FormatInt, um einen int64 in einer gegebenen Basis zu formatieren. FormatInt gibt die Zeichenkettenrepräsentation einer ganzen Zahl in der genannten Basis an, für 2 <= Basis <= 36 und das Ergebnis verwendet die Kleinbuchstaben a bis z für Zahlenwerte >= 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)
}    

Ausgabe:

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

fmt.Sprint-Methode

Wenn wir eine Ganzzahl an die fmt.Sprint-Methode übergeben, erhalten wir einen String-Wert der Ganzzahl.

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)
}  

Ausgabe:

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

Verwandter Artikel - Go Strings

  • Wie konvertiert man Zeichenkette in Ganzzahl-Typ in Go
  • comments powered by Disqus