Avatar ·

Que signifie interface{} en Go et comment l'utiliser correctement ?

Bonjour à tous ! Je viens de commencer à apprendre Go, et la construction `interface{}` me trouble. Je la rencontre partout : dans les fonctions, dans les structures de données, dans les arguments. Par exemple, j'ai vu ce code : ```go func PrintAnything(v interface{}) { fmt.Println(v) } func main() { PrintAnything(42) PrintAnything("hello") PrintAnything([]int{1,2,3}) } ``` Je comprends que c'est une sorte d'"interface vide", mais je n'en saisis pas complètement le sens. Est-ce que `interface{}` peut stocker une valeur de n'importe quel type ? Mais alors, en quoi cela diffère-t-il de `Object` en Java ou de `void*` en C ? Et si je passe un `interface{}` à une fonction, comment récupérer le type d'origine ? Je vois aussi souvent des déclarations comme `map[string]interface{}` ou `[]interface{}`. Cela signifie-t-il que je peux stocker dans une même sli