هل يمكن في Go تعريف واجهة (interface) تحتوي على حقول (fields) مثل Java/C#؟
مرحباً بالجميع! أنا مبتدئ في Go، قادم من Java. هناك اعتدت أن الواجهة يمكن أن تحتوي ليس فقط على توقيعات الدوال (method signatures) ولكن أيضاً على حقول (خصائص). على سبيل المثال:\n\n```java\npublic interface Animal {\n String name = "Unknown";\n void speak();\n}\n```\n\nالآن أحاول فعل الشيء نفسه في Go:\n\n```go\ntype Animal interface {\n Name string\n Speak()\n}\n```\n\nالمترجم (compiler) يعطي خطأ: `interface contains embedded field Name which is not a method`. أنا في حيرة. كيف يمكن في Go وصف هيكل (struct) يضمن احتواؤه على حقول معينة؟ أحتاج أن أي كائن يطبق واجهة `Animal` يجب أن يحتوي بالضرورة على حقل `Name` (سلسلة نصية). بدون هذا، برنامجي ينهار في مرحلة الترجمة (compilation).\n\nحاولت القيام بذلك:\n\n```go\ntype Animal struct {\n Name string\n```