Avatar ·

Peut-on déclarer une interface avec des champs en Go, comme en Java/C# ?

Bonjour à tous ! Je suis débutant en Go, je viens de Java. Là-bas, j'avais l'habitude qu'une interface puisse contenir non seulement des signatures de méthodes, mais aussi des champs (propriétés). Par exemple : ```java public interface Animal { String name = "Unknown"; void speak(); } ``` Maintenant, j'essaie de faire la même chose en Go : ```go type Animal interface { Name string Speak() } ``` Le compilateur renvoie une erreur : `interface contains embedded field Name which is not a method`. Je suis perplexe. Comment décrire correctement en Go une structure qui garantit qu'elle contient certains champs ? J'ai besoin que tout objet implémentant l'interface `Animal` ait obligatoirement un champ `Name` (une chaîne). Sans cela, mon programme échoue à la compilation. J'ai essayé de faire ceci : ```go type Animal struct { Name string } type Dog struct { Animal Speak() } ``` Mais cela ne fonctionne pas non plus. Veuillez m'indiquer, s'il vous plaît, comment organiser correctement en Go un contrat pour la présence d'un champ. Peut-être que je ne comprends tout simplement pas la