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 is a backend software engineer at Matrice.ai.
LinkedIn