golang int 转string

王林
Freigeben: 2023-05-13 09:17:36
Original
2827 Leute haben es durchsucht

Bei der Go-Programmierung ist es häufig erforderlich, den Typ int in den Typ string zu konvertieren. Wenn Sie ein Entwickler sind, der gerade mit dem Erlernen der Go-Sprache begonnen hat, scheint Ihnen dieser Konvertierungsvorgang möglicherweise sehr einfach zu sein. Sie müssen nur die Sprintf-Funktion verwenden, die im fmt-Paket der Standardbibliothek bereitgestellt wird. Bei der Konvertierungsoperation, über die wir heute sprechen werden, wird jedoch mehr Wert auf Details und Effizienz gelegt. In diesem Artikel erhalten Sie eine detaillierte Einführung in die effiziente Konvertierung des Int-Typs in den String-Typ in der Go-Sprache.

1. Zusammenfassung der Methode zum Konvertieren von int in String

Bevor wir die spezifische Methode zum Konvertieren von int in String vorstellen, werfen wir zunächst einen Blick auf die gängigen Methoden zum Konvertieren von int-Typen in String-Typen in der Go-Sprache:

  1. fmt . Sprintf("%d", i), diese Methode dürfte die bekannteste sein. Seine Implementierung basiert auf der Methode strconv.FormatInt und ruft die Methode strconv.FormatInt(int64(i), 10) auf. Der Nachteil dieser Methode besteht jedoch darin, dass sie mehr Rechenressourcen verbraucht.
  2. strconv.Itoa(i), Sie können die Ganzzahl i in das Dezimalformat des String-Typs konvertieren, was fmt.Sprintf("%d", i) entspricht.
  3. strconv.FormatInt(int64(i), 10) kann den Typ int in den Typ string konvertieren.
  4. strconv.AppendInt(buf []byte, i int64, base int), diese Funktion kann Daten vom Typ int in String-Typ konvertieren und das Ergebnis in einem Cache (buf) speichern, wobei buf ein Byte-Typ-Slice ist, base gibt das an Basisnummer. Die Konvertierung zwischen dem Typ int und anderen Datentypen kann durch die Verarbeitung von Zeichenfolgen erreicht werden.

2. Verwenden Sie die strconv.Itoa-Methode.

Die Go-Sprache bietet die strconv.Itoa-Methode, die den Typ „int“ in einen dezimalen Zeichenfolgentyp konvertieren kann }

Die FormatInt-Methode konvertiert den int64-Typ i in das Basisformat und gibt den String-Typ zurück. Wenn die Parameterbasis 10 ist, wird der zurückgegebene Zeichenfolgentyp im Dezimalformat ausgedrückt.

Bei kürzeren String-Konvertierungen schneidet Itoa besser ab als andere Methoden.

3. Verwenden Sie die Methode strconv.FormatInt.

Angenommen, wir konvertieren den Typ int in den String-Typ anderer Basen. Der Implementierungscode lautet wie folgt:

func ConvertIntToHex(num int ) string {

return FormatInt(int64(i), 10)
Nach dem Login kopieren

}

Auf diese Weise können Sie den int-Typ in einen hexadezimalen String-Typ konvertieren. Für den oktalen String-Typ kann auch die Methode strconv.FormatInt() verwendet werden, und Sie müssen nur den zweiten Parameter auf 10 setzen.

4. Verwenden Sie die Methode strconv.AppendInt(buf []byte, i int64, base int)

In einigen Hochleistungsszenarien müssen wir möglicherweise die Methode strconv.AppendInt verwenden, um int in einen String-Typ zu konvertieren. In dem Szenario, in dem bufio.Writer verwendet wird, können beispielsweise Daten vom Typ int in den Cache geschrieben werden, und die zwischengespeicherten Daten können sofort in der Datei aktualisiert werden, nachdem der Cache einen bestimmten Stand oder eine bestimmte Zeit erreicht hat.

Das Folgende ist ein Beispielcode, der strconv.AppendInt verwendet, um int in einen String-Typ zu konvertieren:

func AppendIntToString(i int, buf []byte) []byte {

return strconv.FormatInt(int64(num), 16)
Nach dem Login kopieren

}

Unter diesen stellt der dritte Parameter dar die Systemnummer. Der zweite Parameter stellt den Cache des Ergebnisses dar. Die Funktion hängt das Ergebnis an diesen Cache an und gibt den geänderten Buff-Slice zurück.

5. Leistungsvergleich

Durch Leistungstests können wir die Leistung der oben genannten drei Methoden vergleichen. Die erste ist die fmt.Sprintf-Methode:

func BenchmarkFmtSprintf(b *testing.B) {

return strconv.AppendInt(buf, int64(i), 10)
Nach dem Login kopieren

}

Die zweite ist die strconv.Itoa-Methode:

func BenchmarkItoa(b *testing.B) {

for i := 0; i < b.N; i++ {
    s := fmt.Sprintf("%d", i)
    _ = s
}
Nach dem Login kopieren

}

Schließlich gibt es noch die Methode strconv.FormatInt:

func BenchmarkFormatInt(b *testing.B) {

for i := 0; i < b.N; i++ {
    s := strconv.Itoa(i)
    _ = s
}
Nach dem Login kopieren

}

Aus den Ergebnissen geht hervor, dass die Methode strconv.Itoa die beste und die schlechteste ist fmt.Sprintf. Im Vergleich ist der Unterschied zwischen den ersten beiden Funktionen nicht sehr groß. Obwohl die Methode fmt.Sprintf auch zum Abschließen der Konvertierung verwendet werden kann, empfehlen wir in Situationen mit hoher Parallelität und Leistungsempfindlichkeit dennoch die Methode strconv.Itoa.

VI. Zusammenfassung

In diesem Artikel werden hauptsächlich drei Methoden zum Konvertieren des Int-Typs in den String-Typ in der Go-Sprache vorgestellt: strconv.Itoa, strconv.FormatInt und strconv.AppendInt. Unter diesen eignet sich die strconv.Itoa-Methode für die Konvertierung kurzer Zeichenfolgen, während die strconv.FormatInt-Methode und die strconv.AppendInt-Methode eine bessere Leistung aufweisen und sich besser für Situationen mit hoher Parallelität und Leistungsempfindlichkeit eignen. Gleichzeitig verwenden wir auch die Methode, wenn Sie sie selektiv verwenden.

Kurz gesagt, um die Leistung der Anwendung zu verbessern, müssen wir bei verschiedenen Gelegenheiten unterschiedliche Methoden in Kombination mit spezifischen Geschäftsanforderungen verwenden, um die Konvertierung vom Int-Typ in den String-Typ effektiv abzuschließen.

Das obige ist der detaillierte Inhalt vongolang int 转string. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!