Avatar ·

Como determinar o tipo de uma variável ou objeto em Go: guia para iniciantes

Olá! Comecei a estudar Go recentemente e encontrei um problema. Em outras linguagens, como Python ou JavaScript, posso verificar facilmente o tipo de uma variável em tempo de execução usando type() ou typeof. Mas em Go não consigo encontrar uma maneira simples de fazer isso. Aqui está um exemplo: estou escrevendo uma função que recebe interface{} (interface vazia) e precisa tratar diferentes tipos de maneiras diferentes. Digamos que eu tenha este código: ```go package main import "fmt" func processData(data interface{}) { // Como descubro qual é o tipo de data? fmt.Println("Dados recebidos:", data) } func main() { processData(42) processData("hello") processData([]int{1, 2, 3}) } ``` Quero que a função processData se comporte de forma diferente: se for int — exiba o número, se for string — seu comprimento, se for slice — a quantidade de elementos. Mas não sei como determinar o tipo em tempo de execução. Ouvi falar do pacote reflect, mas parece complicado e, dizem, lento. Existe uma maneira mais simples? Ou reflect