Cómo convertir un valor int en cadena en Go

Suraj Joshi 11 diciembre 2023
  1. La función Itoa del paquete strconv
  2. La función FormatInt del paquete strconv
  3. Método fmt.Sprint
Cómo convertir un valor int en cadena en Go

Los tipos de datos determinan los valores que se pueden asignar al tipo y las operaciones que se pueden realizar sobre él. La conversión de tipos de datos es una operación muy utilizada en la programación y entre las conversiones de tipos de datos la conversión de int al valor de cadena es muy popular.

Se utiliza mientras se imprime el número en la pantalla o se trabaja con el número como si fuera una cadena de caracteres. Go proporciona la conversión de cadenas y enteros directamente desde un paquete que viene de la biblioteca estándar strconv.

Si usamos la conversión simple de int a string, el valor entero es interpretado como un punto de código Unicode. Y la cadena resultante contendrá el carácter representado por el punto de código, codificado en UTF-8.

package main

import "fmt"

func main() {
    s := string(97)
    fmt.Printf("Value of 97 after conversion : %v\n", s)
}  

Producción :

Value of 97 after conversion : a

Pero esto es indeseable, y por lo tanto usamos algunas funciones estándar para convertir los números enteros al tipo de datos de cadena, que se discuten a continuación:

La función Itoa del paquete strconv

El paquete strconv implementa conversiones a y desde representaciones de cadenas de tipos de datos básicos. Para convertir un número entero en una cadena, usamos la función Itoa del paquete strconv.

package main

import (
    "fmt"
    "strconv"
)

func main() {
    x := 138
    fmt.Printf("Datatype of 138 before conversion : %T\n", x)
    a := strconv.Itoa(x)
    fmt.Printf("Datatype of 138 after conversion : %T\n", a)

    fmt.Println("Number: " + a)
}    

Producción :

Datatype of 138 before conversion : int
Datatype of 138 after conversion : string
Number: 138

La función FormatInt del paquete strconv

Usamos strconv.FormatInt para dar formato a un int64 en una base dada. FormatInt da la representación de la cadena de números enteros en la base mencionada, para 2 <= base <= 36 y el resultado utiliza las letras minúsculas a a z para los valores de los dígitos >= 10.

package main

import (
    "fmt"
    "strconv"
)

func main() {
    var integer_1 int64 = 31
    fmt.Printf("Value of integer_1 before conversion : %v\n", integer_1)
    fmt.Printf("Datatype of integer_1 before conversion : %T\n", integer_1)

    var string_1 string = strconv.FormatInt(integer_1, 10)
    fmt.Printf("Value of integer_1 after conversion in base 10: %v\n", string_1)
    fmt.Printf("Datatype of integer_1 after conversion in base 10 : %T\n", string_1)

    var string_2 string = strconv.FormatInt(integer_1, 16)
    fmt.Printf("Value of integer_1 after conversion in base 16 : %v\n", string_2)
    fmt.Printf("Datatype of integer_1 after conversion in base 16 : %T\n", string_2)
}    

Resultado:

Value of integer_1 before conversion : 31
Datatype of integer_1 before conversion : int64
Value of integer_1 after conversion in base 10: 31
Datatype of integer_1 after conversion in base 10 : string
Value of integer_1 after conversion in base 16 : 1f
Datatype of integer_1 after conversion in base 16 : string

Método fmt.Sprint

Cuando pasamos un entero al método fmt.Sprint, obtenemos un valor de cadena del entero.

package main

import (
    "fmt"
)

func main() {

    x := 138
    fmt.Printf("Datatype of 138 before conversion : %T\n", x)
    a := fmt.Sprint(x)
    fmt.Printf("Datatype of 138 after conversion : %T\n", a)

    fmt.Println("Number: " + a)
}  

Producción :

Datatype of 138 before conversion : int
Datatype of 138 after conversion : string
Number: 138
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Go String