Conversión entre cadenas (strings) y enteros
Podemos utilizar funciones del paquete strconv
para convertir entre cadenas (strings) y enteros:
package main
import (
"fmt"
"strconv"
)
func main() {
// Declare a string a and an integer b
a, b := "233", 223
// Use Atoi to convert a string to an integer
c, _ := strconv.Atoi(a)
// Use Sprintf and Itoa functions respectively
// to convert an integer to a string
d1 := fmt.Sprintf("%d", b)
d2 := strconv.Itoa(b)
fmt.Printf("The type of a: %T\n", a) // string
fmt.Printf("The type of b: %T\n", b) // int
fmt.Printf("The type of c: %T\n", c) // int
fmt.Printf("The type of d1: %T\n", d1) // string
fmt.Printf("The type of d2: %T\n", d2) // string
}
go run string.go
La salida esperada es la siguiente:
The type of a: string
The type of b: int
The type of c: int
The type of d1: string
The type of d2: string
En el programa, utilizamos la función Sprintf()
del paquete fmt
, que tiene el siguiente formato:
func Sprintf(format string, a...interface{}) string
format
es una cadena (string) con secuencias de escape, a
es una constante o variable que proporciona valores para las secuencias de escape, y ...
significa que puede haber múltiples variables del mismo tipo que a
. La cadena (string) después de la función indica que Sprintf
devuelve una cadena (string). Aquí hay un ejemplo de uso de esta función:
a = fmt.Sprintf("%d+%d=%d", 1, 2, 3)
fmt.Println(a) // 1+2=3
En este fragmento de código, se pasan tres variables enteras 1, 2 y 3 a format
. El carácter de escape de entero %d
en format
se reemplaza por los valores enteros, y la función Sprintf
devuelve el resultado después del reemplazo, 1+2=3
.
También, tenga en cuenta que cuando se utiliza strconv.Atoi()
para convertir una cadena (string) a un entero, la función devuelve dos valores, el entero convertido val
y el código de error err
. Debido a que en Go, si se declara una variable, se debe utilizarla, podemos utilizar un guión bajo _
para ignorar la variable err
.
Cuando strconv.Atoi()
convierte correctamente, err
devuelve nil
. Cuando ocurre un error durante la conversión, err
devuelve el mensaje de error, y el valor de val
será 0. Puedes cambiar el valor de la cadena (string) a
y reemplazar el guión bajo con una variable normal para probarlo tú mismo. Esto es una buena práctica para el manejo de errores, que es una parte crucial de la programación en Go.