المنشئات في 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 كنت سأفعل