Kann man in Go ein Interface mit Feldern wie in Java/C# deklarieren?
Hallo zusammen! Ich bin neu in Go und komme von Java. Dort war ich es gewohnt, dass ein Interface nicht nur Methodensignaturen, sondern auch Felder (Eigenschaften) enthalten kann. Zum Beispiel:\n\n```java\npublic interface Animal {\n String name = "Unknown";\n void speak();\n}\n```\n\nJetzt versuche ich, dasselbe in Go zu machen:\n\n```go\ntype Animal interface {\n Name string\n Speak()\n}\n```\n\nDer Compiler gibt einen Fehler aus: `interface contains embedded field Name which is not a method`. Ich bin verwirrt. Wie beschreibt man in Go korrekt eine Struktur, die garantiert bestimmte Felder enthält? Ich brauche, dass jedes Objekt, das das Interface `Animal` implementiert, zwingend ein Feld `Name` (einen String) hat. Ohne das bricht mein Programm zur Compile-Zeit auseinander.\n\nIch habe es so versucht:\n\n```go\ntype Animal struct {\n Name string\n```