Bagaimana cara untuk menukar int32 kepada rentetan dengan cekap di Golang?

Barbara Streisand
Lepaskan: 2024-11-03 12:25:02
asal
678 orang telah melayarinya

How to Efficiently Convert int32 to String in Golang?

Tukar int32 kepada rentetan dalam Golang

Penukaran int32 kepada rentetan dalam Golang boleh dilakukan dengan mudah dengan penyelesaian ringkas: fmt.Sprint(i) . Walau bagaimanapun, jika kaedah langsung ini tidak mencukupi, terdapat beberapa pilihan penukaran yang tersedia:

  1. Fungsi Penukaran Tersuai: Ini ialah kaedah terpantas, yang melibatkan penulisan fungsi penukaran anda sendiri.
  2. fmt.Sprint(i): Ini adalah pendekatan yang lebih perlahan berbanding dengan fungsi tersuai tetapi kekal sebagai pilihan.
  3. strconv.Itoa(int(i) ): Walaupun lebih pantas sedikit daripada fmt.Sprint(i), ia memerlukan penukaran int32 kepada int sebelum penukaran.
  4. strconv.FormatInt(int64(i), 10): Ini ialah kaedah yang lebih pantas berbanding strconv.Itoa(int(i)) kerana ia menukar secara langsung int32 kepada int64 dan kemudian kepada rentetan.

Tanda aras prestasi menunjukkan bahawa fungsi penukaran tersuai (String) adalah yang paling cekap, diikuti dengan strconv.FormatInt, strconv.Itoa dan fmt.Sprint.

Berikut ialah coretan kod yang menunjukkan perbandingan:

<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>
Salin selepas log masuk

Akhirnya, pilihan terbaik bergantung pada keperluan khusus dan kekangan prestasi aplikasi anda.

Atas ialah kandungan terperinci Bagaimana cara untuk menukar int32 kepada rentetan dengan cekap di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan