Avatar ·

كيفية جعل 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 ``` أنا