Wie man int in string in Go umwandelt: Vollständige Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

„Ich habe mir eine Stunde den Kopf zerbrochen, und die Lösung hat drei Zeilen“: Wie man int in string in Go umwandelt

\n\n

Stellen Sie sich vor: Sie schreiben einen Microservice in Go, verarbeiten numerische Benutzer-IDs und stellen plötzlich fest, dass Sie diese mit Text in Logs oder HTTP-Antworten verknüpfen müssen. Sie schreiben so etwas wie str := "User_" + id – und der Compiler gibt einen Fehler aus: cannot use id (type int) as type string in concatenation. Kommt Ihnen bekannt vor?

\n\n

Dies ist eine der häufigsten Fragen auf Stack Overflow zu Go – „How to convert an int value to string in Go?“ – sie wurde hunderttausende Male aufgerufen. Und das zu Recht: In Go gibt es eine strenge Typisierung, und man kann eine Zahl nicht einfach mit einem String „addieren“. Aber keine Sorge – heute besprechen wir alle Methoden zur Konvertierung von int in string in Go. Sie erfahren, welche Methode schneller ist, welche sicherer und wann Sie welche verwenden sollten. Los geht‘s!

\n\n

Warum erlaubt Go nicht einfach int und string zu addieren?

\n\n

Im Gegensatz zu JavaScript oder Python, wo "Age: " + 25 „out of the box“ funktioniert, erfordert Go eine explizite Typkonvertierung. Dies dient der Sicherheit: Sie müssen stets kontrollieren, was in was umgewandelt wird. Stellen Sie sich vor, Sie addieren versehentlich eine Zahl mit Text – in anderen Sprachen kann dies zu schwer auffindbaren Fehlern führen. In Go sagt der Compiler sofort: „Stopp, das ist nicht erlaubt“.

\n\n

Daher gibt es in Go spezielle Funktionen aus der Standardbibliothek zur Konvertierung von int in string. Keine externen Abhängigkeiten – nur reines Go.

\n\n

Methode Nr. 1: fmt.Sprintf – das universelle „Schweizer Taschenmesser“

\n\n

Die intuitivste Methode ist die Verwendung der Funktion fmt.Sprintf. Sie kennen sie wahrscheinlich bereits von der formatierten Ausgabe. Sie kann alles in einen String umwandeln – Zahlen, boolesche Werte, Strukturen.

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

Vorteile:

\n
    \n
  • Sehr flexibel: Sie können die Zahl direkt mit dem gewünschten Format in einen String einbetten (dezimal, hexadezimal, mit führenden Nullen).
  • \n
  • Geeignet für alle Typen – nicht nur int, sondern auch float, bool, struct.
  • \n
\n\n

Nachteile:

\n
    \n
  • Verwendet unter der Haube Reflektion, daher langsamer als spezialisierte Funktionen.
  • \n
  • Wenn Sie nur einen String aus einer Zahl erhalten möchten (ohne Formatierung), ist dies überdimensioniert.
  • \n
\n\n

Wann verwenden: Wenn Sie die Ausgabe nicht nur konvertieren, sondern auch formatieren möchten – Währungssymbole hinzufügen, an der Breite ausrichten, in HEX umwandeln.

\n\n

Methode Nr. 2: strconv.Itoa – schnell und einfach (int → string)

\n\n

Wenn Ihre Aufgabe lediglich darin besteht, die String-Darstellung einer Zahl zu erhalten, ohne jegliche „Verschönerungen“, verwenden Sie strconv.Itoa. Dies ist eine spezialisierte Funktion zur Konvertierung von int in string. Sie arbeitet schnell und führt keine überflüssigen Operationen durch.

\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) // Ausgabe: "42"\n    fmt.Printf("Typ: %T\\n", str) // Typ: string\n}
\n\n

Vorteile:

\n
    \n
  • Maximale Leistung für den Basisfall.
  • \n
  • Einfachheit: Eine Funktion – eine Aktion.
  • \n
\n\n

Nachteile:

\n
    \n
  • Funktioniert nur mit dem Typ int. Wenn Sie int64, int32 usw. haben, müssen Sie zuerst in int umwandeln oder eine andere Methode verwenden.
  • \n
  • Keine Kontrolle über das Zahlensystem – nur dezimale Darstellung.
  • \n
\n\n

Wann verwenden: Wenn Sie einen normalen int haben und einfach einen String erhalten möchten – das ist Ihre Standardwahl.

\n\n

Methode Nr. 3: strconv.FormatInt – Kontrolle über das Zahlensystem

\n\n

Was aber, wenn Sie eine Zahl in

Blogs

Buchempfehlungen