Heim > Backend-Entwicklung > Golang > Wie kann ich int32 in Golang effizient in String konvertieren?

Wie kann ich int32 in Golang effizient in String konvertieren?

Barbara Streisand
Freigeben: 2024-11-03 12:25:02
Original
754 Leute haben es durchsucht

How to Efficiently Convert int32 to String in Golang?

Int32 in einen String in Golang konvertieren

Das Konvertieren von int32 in einen String in Golang kann mit einer prägnanten Lösung unkompliziert sein: fmt.Sprint(i) . Wenn diese direkte Methode jedoch nicht ausreicht, stehen mehrere Konvertierungsoptionen zur Verfügung:

  1. Benutzerdefinierte Konvertierungsfunktion: Dies ist die schnellste Methode, bei der Sie Ihre eigene Konvertierungsfunktion schreiben müssen.
  2. fmt.Sprint(i): Dies ist ein langsamerer Ansatz im Vergleich zur benutzerdefinierten Funktion, bleibt aber eine Option.
  3. strconv.Itoa(int(i) ): Obwohl etwas schneller als fmt.Sprint(i), erfordert es vor der Konvertierung die Konvertierung von int32 in int.
  4. strconv.FormatInt(int64(i), 10): Dies ist eine schnellere Methode im Vergleich zu strconv.Itoa(int(i)), da sie int32 direkt in int64 und dann in einen String konvertiert.

Leistungsbenchmarks zeigen, dass die benutzerdefinierte Konvertierungsfunktion (String) am besten geeignet ist effizient, gefolgt von strconv.FormatInt, strconv.Itoa und fmt.Sprint.

Hier ist ein Codeausschnitt, der den Vergleich demonstriert:

<code class="go">package main

import (
    "fmt"
    "strconv"
    "time"
)

func main() {
    var s string
    i := int32(-2147483648)
    t := time.Now()
    for j := 0; j < 50000000; j++ {
        s = String(i)
        //s = String2(i)  // Other conversion functions can be used here
    }
    fmt.Println(time.Since(t))
    fmt.Println(s)
}

func String(n int32) string {
    // Custom conversion function
    buf := [11]byte{}
    pos := len(buf)
    i := int64(n)
    signed := i < 0
    if signed {
        i = -i
    }
    for {
        pos--
        buf[pos], i = '0'+byte(i%10), i/10
        if i == 0 {
            if signed {
                pos--
                buf[pos] = '-'
            }
            return string(buf[pos:])
        }
    }
}</code>
Nach dem Login kopieren

Letztendlich hängt die beste Wahl von den spezifischen Anforderungen ab und Leistungseinschränkungen Ihrer Anwendung.

Das obige ist der detaillierte Inhalt vonWie kann ich int32 in Golang effizient in String konvertieren?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage