Comment déterminer le type d'une variable ou d'un objet en Go : guide pour débutants
Bonjour ! Je viens de commencer à apprendre Go et j'ai un problème. Dans d'autres langages, comme Python ou JavaScript, je peux facilement vérifier le type d'une variable à l'exécution avec type() ou typeof. Mais en Go, je ne trouve pas de moyen simple de le faire.
Voici un exemple : j'écris une fonction qui prend un interface{} (interface vide) et doit traiter différents types de manière différente. Supposons que j'ai ce code :
```go
package main
import "fmt"
func processData(data interface{}) {
// Comment puis-je savoir quel type est data ?
fmt.Println("Données reçues :", data)
}
func main() {
processData(42)
processData("hello")
processData([]int{1, 2, 3})
}
```
Je veux que la fonction processData se comporte différemment : si c'est un int — affiche le nombre, si c'est une string — sa longueur, si c'est une slice — le nombre d'éléments. Mais je ne sais pas comment déterminer le type à l'exécution. J'ai entendu parler du package reflect, mais il semble compliqué et, dit-on, lent. Existe-t-il un moyen plus simple ? Ou reflect...