Avatar ·

المنشئات في Go: كيف نهيئ الهياكل بشكل صحيح؟

مرحباً بالجميع! لقد بدأت للتو في تعلم Go بعد Java وC#، وواجهت سوء فهم بخصوص المنشئات. في Java اعتدت كتابة شيء مثل: ```java public class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } } ``` في Go أرى أنه لا توجد كلمة مفتاحية `class` ولا توجد منشئات صريحة. حاولت القيام بذلك: ```go type User struct { name string age int } // المحاولة 1: مجرد دالة بنفس الاسم func User(name string, age int) User { return User{name: name, age: age} } // خطأ: User redeclared in this block // المحاولة 2: method للهيكل func (u User) User(name string, age int) User { return User{name: name, age: age} } // لا يعمل أيضاً ``` أنا في حيرة. كيف يمكن تهيئة الهيكل مع التحقق من صحة الحقول بشكل صحيح؟ على سبيل المثال، أريد ألا يكون العمر سالباً وألا يكون الاسم فارغاً. في Java كنت سأفعل