Sobes.tech
Junior

Como converter uma string em um número inteiro e vice-versa?

sobes.tech IA

Resposta da IA

Para converter uma string em um número inteiro, utiliza-se o pacote strconv, a função Atoi ou ParseInt. Para converter um número inteiro em string, também se usa o pacote strconv, a função Itoa ou FormatInt.

import "strconv"

func main() {
	// Conversão de string para número
	strNum := "123"
	intNum, err := strconv.Atoi(strNum) // Atoi devolve um int e um erro
	if err != nil {
		// tratamento do erro
	}

	intNum64, err := strconv.ParseInt("456", 10, 64) // ParseInt devolve um int64, base, tamanho em bits
	if err != nil {
		// tratamento do erro
	}

	// Conversão de número para string
	numToStr := 789
	strResult := strconv.Itoa(numToStr) // Itoa devolve uma string

	num64ToStr := int64(1011)
	strResult64 := strconv.FormatInt(num64ToStr, 10) // FormatInt devolve uma string, base
}

Funções principais:

Função Descrição Valor devolvido Pacote
Atoi(s string) Converte uma string em um número inteiro decimal. (int, error) strconv
ParseInt(s string, base int, bitSize int) Converte uma string em um número inteiro de base e tamanho em bits especificados. (int64, error) strconv
Itoa(i int) Converte um número inteiro decimal em string. string strconv
FormatInt(i int64, base int) Converte um número inteiro de tamanho em bits em uma string com a base especificada. string strconv

Atoi é uma abreviação conveniente para ParseInt(s, 10, 0) com conversão do resultado para int. Itoa é uma abreviação para FormatInt(int64(i), 10).

Ao converter uma string em número, é importante tratar erros, pois a string pode conter caracteres não numéricos ou exceder o tamanho do tipo de dado.