Lorsque vous traitez avec des interfaces génériques prenant en charge différents types, vous pouvez rencontrer l'erreur « Impossible de déduire V » erreur dans Go, en particulier dans les versions 1.20 et inférieures. Voici comment résoudre ce problème :
Pour Go 1.21 et versions ultérieures, l'erreur est résolue sans spécifier explicitement les contraintes de type. L'inférence de type prend désormais en compte les types de méthodes lors de l'attribution de valeurs à une interface, permettant au compilateur de déduire des arguments de type à partir des méthodes fournies.
Dans Go 1.20 et versions antérieures, déduisant le type de V à partir du type concret implémentant la contrainte ConfigStorage[K, V] n'était pas pris en charge. Pour résoudre l'erreur, vous devez fournir explicitement les paramètres de type lors de l'appel de la fonction GetValue, comme ceci :
// Specify string for K and string for V GetValue[string, string](fileStorage, "key")
Avec cette modification, le compilateur peut désormais déduire le type de V en fonction des types fournis pour K et l'implémentation de la méthode set.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!