Junior
Quel est le rôle de l'interface vide dans le langage Go?
sobes.tech IA
Réponse de l'IA
L'interface vide interface{} en Go peut contenir des valeurs de n'importe quel type. Cela la rend utile pour les scénarios suivants :
- Fonctions travaillant avec des types de données inconnus au moment de la compilation. Par exemple, la bibliothèque standard
fmt.Printlnaccepte des arguments de typeinterface{}. - Stockage de types de données mixtes dans des collections. La tranche
[]interface{}peut contenir des éléments de différents types. - Implémentation du polymorphisme lorsque les types spécifiques ne sont pas connus à l'avance.
Cependant, l'utilisation de l'interface vide nécessite d'effectuer une assertion de type (type assertion) ou un switch de type (type switch) à l'exécution pour accéder à la valeur réelle et à ses méthodes, ce qui peut être moins sûr en termes de types et moins performant par rapport à l'utilisation de types spécifiques ou d'interfaces plus spécialisées.
// Exemple d'utilisation de l'interface vide
var data interface{}
data = 10 // data stocke maintenant un int
data = "hello" // data stocke maintenant une string
data = true // data stocke maintenant un bool
// Assertion de type pour accéder à la valeur
if value, ok := data.(string); ok {
// value est une string
_ = value
}
// Switch de types
switch v := data.(type) {
case int:
// v est un int
_ = v
case string:
// v est une string
_ = v
default:
// Type inconnu
}