Convertendo Strings e Inteiros
Podemos usar funções do pacote strconv para converter entre strings e inteiros:
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
A saída esperada é a seguinte:
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
No programa, usamos a função Sprintf() do pacote fmt, que tem o seguinte formato:
func Sprintf(format string, a ...interface{}) string
format é uma string com sequências de escape, a é uma constante ou variável que fornece valores para as sequências de escape, e ... significa que pode haver múltiplas variáveis do mesmo tipo que a. A string após a função representa que Sprintf retorna uma string. Aqui está um exemplo de como usar esta função:
a = fmt.Sprintf("%d+%d=%d", 1, 2, 3)
fmt.Println(a) // 1+2=3
Neste trecho de código, o format é passado com três variáveis inteiras 1, 2 e 3. O caractere de escape inteiro %d em format é substituído pelos valores inteiros, e a função Sprintf retorna o resultado após a substituição, 1+2=3.
Além disso, observe que ao usar strconv.Atoi() para converter uma string em um inteiro, a função retorna dois valores, o inteiro convertido val e o código de erro err. Como em Go, se você declara uma variável, você deve usá-la, podemos usar um sublinhado _ para ignorar a variável err.
Quando strconv.Atoi() converte corretamente, err retorna nil. Quando ocorre um erro durante a conversão, err retorna a mensagem de erro, e o valor de val será 0. Você pode alterar o valor da string a e substituir o sublinhado por uma variável normal para experimentar por si mesmo. Esta é uma boa prática para o tratamento de erros (error handling), que é uma parte crucial da programação em Go.