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