Wie konvertiert man einen int Wert in Go in einen String
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 Zeichenkette 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
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn