Int32 in String in Go konvertieren: Jenseits von Int und Int64
In Go kann die Konvertierung eines int32 in einen String ohne Notwendigkeit durchgeführt werden für Zwischenkonvertierungen in int oder int64. Hier sind mehrere Ansätze, um dies zu erreichen:
1. Verwendung von fmt.Sprint(i)
s := fmt.Sprint(i)
Diese Methode bietet eine unkomplizierte einzeilige Lösung.
2. Erstellen einer benutzerdefinierten Konvertierungsfunktion
Für eine optimale Leistung kann eine benutzerdefinierte Konvertierungsfunktion erstellt werden:
func String(n int32) string { // Implementation details return string(buf[pos:]) }
3. Verwendung von strconv.Itoa(int(i))
s := strconv.Itoa(int(i))
Während dieser Ansatz zunächst die Konvertierung in int erfordert, bietet er eine relativ schnelle Lösung.
4. Mit strconv.FormatInt(int64(i), 10)
s := strconv.FormatInt(int64(i), 10)
Diese Methode ist schneller als strconv.Itoa, da sie int32 direkt in einen String konvertiert.
Leistungsvergleich
Um die Effizienz dieser Methoden zu vergleichen, wurde ein Benchmark mit 50 Millionen Iterationen durchgeführt:
Method | Time Taken |
---|---|
String | 5.5923198s |
String2 | 5.5923199s |
strconv.FormatInt(int64(i), 10) | 5.9133382s |
strconv.Itoa(int(i)) | 5.9763418s |
fmt.Sprint(i) | 13.5697761s |
Wie aus den Ergebnissen hervorgeht, bietet die benutzerdefinierte Konvertierungsfunktion String die schnellste Ausführungszeit.
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie ein Int32 in einen String in Go: Welche Methode ist am schnellsten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!