Avatar ·

Cómo determinar el tipo de una variable u objeto en Go: guía para principiantes

¡Hola! Acabo de empezar a aprender Go y tengo un problema. En otros lenguajes, como Python o JavaScript, puedo verificar fácilmente el tipo de una variable en tiempo de ejecución usando type() o typeof. Pero en Go no encuentro una forma sencilla de hacerlo. Aquí hay un ejemplo: estoy escribiendo una función que acepta interface{} (interfaz vacía) y debe manejar diferentes tipos de manera diferente. Supongamos que tengo este código: ```go package main import "fmt" func processData(data interface{}) { // ¿Cómo puedo saber qué tipo tiene data? fmt.Println("Datos recibidos:", data) } func main() { processData(42) processData("hello") processData([]int{1, 2, 3}) } ``` Quiero que la función processData se comporte de manera diferente: si es int — que imprima el número, si es string — su longitud, si es slice — la cantidad de elementos. Pero no sé cómo determinar el tipo en tiempo de ejecución. He oído hablar del paquete reflect, pero parece complicado y, dicen, lento. ¿Hay una forma más simple? ¿O reflect