كيفية جعل memberwise initializer عامًا بشكل افتراضي للهياكل في Swift؟
مرحبًا بالجميع! بدأت في تعلم Swift وواجهت مشكلة عند العمل مع الهياكل (struct). بشكل افتراضي، يقوم Swift بإنشاء memberwise initializer (مُهيئ عنصر تلو الآخر) للهياكل، والذي يسمح بإنشاء نسخة عن طريق تمرير قيم لجميع الخصائص. ولكن إذا قمت بتعريف هيكل بمستوى وصول `public`، يصبح memberwise initializer داخليًا (internal) وليس عامًا. ونتيجة لذلك، لا يمكنني استخدام الهيكل من وحدة نمطية أخرى.
إليك مثال:
```swift
// ModuleA.swift
public struct User {
public let name: String
public let age: Int
// memberwise initializer غير مُعلن بشكل صريح
}
// ModuleB.swift (وحدة نمطية أخرى)
let user = User(name: "Alice", age: 30) // خطأ: 'User' cannot be initialized with memberwise initializer
```
أنا