Fácil Go
Convertendo idade para texto
Enunciado
Crie um programa que declare uma variável idade do tipo int com valor 25 e converta-a para string usando strconv.Itoa. Imprima a frase Tenho 25 anos usando fmt.Println com a string convertida.
Requisitos
- Declarar
idadecomoint. - Usar
strconv.Itoapara converter parastring. - Imprimir exatamente
Tenho 25 anos.
Código inicial
package main
import (
"fmt"
"strconv"
)
func main() {
// declare idade e converta
}
Saída esperada
Tenho 25 anos
Ver dica
strconv.Itoa(idade) devolve uma string; concatene com + ou use fmt.Println com vírgulas.
Mostrar solução
package main
import (
"fmt"
"strconv"
)
func main() {
var idade int = 25 // tipo explícito
texto := strconv.Itoa(idade) // int -> string
fmt.Println("Tenho " + texto + " anos")
}
Passo a passo
- Declaramos
idadecomointcom valor 25 — o tipo fica claro para o compilador. strconv.Itoa(idade)converte o inteiro para sua representação decimal emstring.- Guardamos o resultado em
texto, que é do tipostring. - Concatenamos
"Tenho ",textoe" anos"com o operador+. fmt.Printlnimprime a frase completa e adiciona a quebra de linha.
Por que funciona
Go não converte int em string automaticamente. Se você tentar "Tenho " + idade, o compilador acusa erro de tipos incompatíveis. strconv.Itoa é a função idiomática para essa conversão, produzindo o texto "25" em vez do caractere de código 25.
Erros comuns
- Usar
string(idade): isso gera o caractere cujo código Unicode é 25, não"25". Corrija comstrconv.Itoa(idade). - Esquecer de importar
strconv: o compilador reclamaundefined: strconv. - Tentar
fmt.Println("Tenho " + idade + " anos"): erromismatched types string and int.
Outra forma de resolver
Usar fmt.Sprintf, que formata sem conversão explícita:
fmt.Println(fmt.Sprintf("Tenho %d anos", idade))
É preferível quando você já vai formatar vários valores na mesma string.
Saída esperada
Tenho 25 anos