Maison > développement back-end > Golang > le corps du texte

Comment convertir efficacement int32 en chaîne dans Golang ?

Barbara Streisand
Libérer: 2024-11-03 12:25:02
original
680 Les gens l'ont consulté

How to Efficiently Convert int32 to String in Golang?

Convertir int32 en chaîne dans Golang

Convertir int32 en chaîne dans Golang peut être simple avec une solution concise : fmt.Sprint(i) . Cependant, si cette méthode directe n'est pas suffisante, plusieurs options de conversion sont disponibles :

  1. Fonction de conversion personnalisée : Il s'agit de la méthode la plus rapide, impliquant l'écriture de votre propre fonction de conversion.
  2. fmt.Sprint(i) : Il s'agit d'une approche plus lente par rapport à la fonction personnalisée mais reste une option.
  3. strconv.Itoa(int(i) ) : Bien que légèrement plus rapide que fmt.Sprint(i), il nécessite la conversion de int32 en int avant la conversion.
  4. strconv.FormatInt(int64(i), 10) : Ceci est une méthode plus rapide que strconv.Itoa(int(i)) car elle convertit directement int32 en int64 puis en chaîne.

Les tests de performances indiquent que la fonction de conversion personnalisée (String) est la plus efficace, suivi de strconv.FormatInt, strconv.Itoa et fmt.Sprint.

Voici un extrait de code illustrant la comparaison :

<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>
Copier après la connexion

En fin de compte, le meilleur choix dépend des exigences spécifiques et les contraintes de performances de votre application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal